09/03/22 20:51:42 t0gd/KIy0
>>57
コードをそのまま再利用しようなんてのは普通のプログラム言語にまかせて
違った利用方法には断片から再構成するのがスクリプト方式なんだよね
60:名無しさん@お腹いっぱい。
09/03/23 19:29:22 Cm/UBSMR0
>>59
めんどくさく書いたのに結局使いまわせなくて無意味だったりするんだよね
だったら割り切って簡単さ優先のほうがいい
なら構造化までで十分だしオブジェクト指向以降は邪魔なだけ
61:名無しさん@お腹いっぱい。
09/03/25 18:56:29 uoklUH0P0
質問です。IEtoExcel.uwsなんですけど
body = Copy(body, 1, Pos("</TBODY>",body)) // 取得終了位置
なぜこれで取得終了位置が決定できるのですか?
1文字目からPos("</TBODY>",body)文字目までってのがよくわからないのですが
62:名無しさん@お腹いっぱい。
09/03/25 22:11:18 VLYJF0HH0
>>61
そこだけ抜き出ても誰も即答できんよ…
body = IEGetSrc(IE, "BODY")
print body
body = Copy(body, Pos("<SMALL>日付</SMALL>",body), 999999) // 取得開始位置
print body
body = Copy(body, 1, Pos("</TBODY>",body)) // 取得終了位置
print body
とログ取ってみれば理解できると思うけど?(自分ではやってみていないがw)
63:名無しさん@お腹いっぱい。
09/03/25 22:18:25 ykXGJViE0
>>61
Copyって関数とPosって関数の二つを使っているんだよ
■Copy
コピー結果文字=Copy(コピー前文字, 開始位置, 終了位置)
コピー前文字="ABCDE"
開始位置=2
終了位置=3
コピー結果文字="BC"
■Pos
位置を表す数=Pos(検索文字, 検索元の文字)
検索元の文字="ABCDE"
検索文字="D"
位置を表す数=4
つまり、bodyって変数の中にIEで取得したページの
<TBODY>~</TBODY>の<TBODY>以降「~</TBODY>」が
入ってるから、末尾の</TBODY>までの「~」部分を
取り出している
64:名無しさん@お腹いっぱい。
09/03/27 10:31:09 AcxgdDaV0
Pro版でexe化したらAlt+F2で停止しなくなったんだけどこれ何?
65:名無しさん@お腹いっぱい。
09/03/27 18:02:15 GuzBvoGh0
当たり前です。
66:名無しさん@お腹いっぱい。
09/03/27 19:12:27 lMvlwR450
特定のボタン押したときに停止する命令入れない人って…
67:名無しさん@お腹いっぱい。
09/03/27 19:46:58 dvwsWJKV0
全くのUWSC初心者なのですが、初めから丁寧に説明してくれてるサイトとかありますか?
自分でスクリプト作ってみたいと思ってます。
68:名無しさん@お腹いっぱい。
09/03/27 20:12:35 fVsO9M+W0
IEGETDATA/IESETDATAって対象フレーム指定できる?
frameはやっぱりDocumentプロパティからがりがりいじるしかないの?
69:名無しさん@お腹いっぱい。
09/03/27 20:33:28 fVsO9M+W0
>>67
漏れ中級者(66みたいにわからないことはあり)ですけど
uwscは仕様もヘルプも人間に優しいので
ヘルプのスクリプト→スクリプト関数→ウインドウ関連→GETIDの最後の「例)」のリンク先に
サンプルが大量にあるのを写して実行させればよいのでは?
あとはトライ&エラーで大丈夫かと
70:名無しさん@お腹いっぱい。
09/03/27 20:50:01 dvwsWJKV0
>>69
レスありがとうございます。
一通り目を通してみますね。
71:名無しさん@お腹いっぱい。
09/03/28 00:39:06 CJN0OekI0
ページの表示待ちで質問があります。
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://○○○○○")
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
これがページの表示が終わるまでは待つスクリプトだと思うのですが
○○○○○の箇所が毎回ランダムに変わる場合
どのようにスクリプトを組めばいいのかわかりません。
数種類のアドレスだけなら○○○○○の場所に数種類分のアドレスを入れればいいのですが
ランダム英数字なので、自作のスクリプトに、上のスクリプトを追加してたらキリがないのです。
○○○○○の場所が変わってもアクティブなIEウィンドウの表示待ちをしてくれる便利なスクリプトは無いものでしょうか?
説明が下手で申し訳ありません。
72:名無しさん@お腹いっぱい。
09/03/28 01:08:30 imhwk0EW0
>>71
>UNTIL !IE.busy AND IE.readystate=4
ページ表示の完了を待つ部分はここだけ。
ランダムなURLを自動取得する部分を書かないと、同じことだけどな。
73:名無しさん@お腹いっぱい。
09/03/30 14:11:23 bJqod+xu0
IEの画像表示を切っているときでも、特定の画像だけ表示することはどうやれば実現できますか?
手動のIEだとコンテキストメニューで画像の表示をやればできますが、それを直接やる方法など。
74:名無しさん@お腹いっぱい。
09/03/31 03:16:16 uj3sv1g20
2009/03/31 UWSC Ver4.5a、 Pro版と Free版をリリースしました。
75:名無しさん@お腹いっぱい。
09/03/31 10:32:20 gAjYRmVT0
DLLに配列が使えるようになったみたいだね
76:名無しさん@お腹いっぱい。
09/04/01 19:38:02 ORgiq0uE0
FOPEN("○○.○",F_READ or F_WRITE)でappendオープンとほぼ同等になるのか・・・
(前の部分も書き換えようと思えばできるから厳密に同じじゃないけど)
素直にF_APPENDフラグつけてほしい
77:名無しさん@お腹いっぱい。
09/04/01 20:22:58 LeFjj7N90
なんでorなんだろうな…そこはandだろ…
78:名無しさん@お腹いっぱい。
09/04/02 01:27:10 /AIiEOlh0
ぜんぜん
79:名無しさん@お腹いっぱい。
09/04/04 21:44:58 /d+v7qoR0
IPアドレスをワンクリックで変えるために下記のスクリプトを書きましたが、ページの読
み込み完了まで待ってくれなくてどうもうまくいきません。どこが悪いのでしょうか?
//CREATEOLEOBJで生成
IE = CREATEOLEOBJ("InternetExplorer.Application")
//IE可視化
IE.visible = True
//URLジャンプ
IE.navigate("URLリンク(ctu.fletsnet.com)")
//ロード完了まで待つ
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4
id = GETID("CTU設定 - Windows Internet Explorer", "IEFrame", -1)
CLKITEM(id, "ログイン", CLK_ACC)
//ロード完了まで待つ
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4
CLKITEM(id, "切断", CLK_ACC)
//ロード完了まで待つ
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4
CLKITEM(id, "接続", CLK_ACC)
80:79
09/04/04 21:49:47 /d+v7qoR0
すみませんUWSC掲示板というものを見つけたので、そちらにも書かせていただきました
81:名無しさん@お腹いっぱい。
09/04/04 22:31:42 5o+P8JM70
>>79スクリプト自体は別におかしくない
サイトの作りでIE.busyとIE.readystateがうまく遷移しないんじゃない?
テキトーにSLEEP(5)してみるとか
82:79
09/04/05 01:07:09 506pPYQi0
>>81
UWSC掲示板にて有志の方に下記の記述を教えていただきまして、
実行したところまったく問題なく稼動するようになりました。
おそらくSLEEPでもうまくいくと思います。ありがとうございました。
WHILE !IE.busy AND IE.readystate = 4; sleep(0.05); WEND
REPEAT; SLEEP(0.1); UNTIL !IE.busy AND IE.readystate = 4
83:名無しさん@お腹いっぱい。
09/04/08 04:14:05 /k0QiX7S0
申し訳ないのですが質問させてください
あるネットゲームで左クリックだけをおよそ10秒ごとにクリックさせておきたいのですが
それ自体はできたのですが、これをウィンドウをアクティブにしない状態(いわゆる裏マクロ)でずっと動作させておくにはどうしたらいいでしょうか?
ACW(GETID("ネットゲーム名","SFMainWindow"),0,0,1686,1077,0)
while TRUE
BTN(LEFT,CLICK,)
sleep(10.6+random(0))
wend
ACWが原因なのはわかったのですが、単純にそこを消せばいいだけという事は無いみたいで困っています、どうか宜しくお願いします
84:名無しさん@お腹いっぱい。
09/04/08 04:55:25 fwJAXoMx0
>>83
無理。
普通のWindowsアプリなら別の方法で裏で操作できるけど、
キー・マウス必須なゲームではそういうことはできない。
WindowsAPIでならやれなくもないかもしれないけど低レベルな操作ができるやつじゃないと無理。
URLリンク(scripts.web.fc2.com)
こんな感じで仮想マシンでゲームを動かし、その中でマクロすればずっと裏で動作する。
そのページで紹介してるのはホストからゲストを操作するやつで裏で動作するわけじゃないけど。
ちなみに、今のVMware Workstation6.5なら3D使うのは設定画面でチェック入れるだけ。
でも仮想はやっぱりグラフィックが重いから、少々非力でも別のパソコン用意したほうがいいけどね。
85:名無しさん@お腹いっぱい。
09/04/08 05:15:36 /k0QiX7S0
>84
三国志オンラインというネットゲーですと下のような感じで裏マクロにさせておく事ができたのですが
コレの応用とかでなんとかできないのでしょうか?
77 :ネトゲ廃人@名無し[sage]:2008/03/30(日) 02:26:21 ID:???
ググってもヘルプ見てもわからない人用
裏マクロサンプル
wnd_id = GETID("ここに実行させたいウィンドウ名") //ウィンドウ名の一部でもOK
ifb wnd_id = -1 then
MSGBOX("MMO名が起動していません")
exitexit
endif
MOUSEORG(wnd_id, 2)
while TRUE
Kbd(VK_8,CLICK,3) //定期的に実行したいキーの指定、この場合8を押す。
sleep(36+random(15)) //ここの数字を変えると待機時間を変更できる。現在は36秒+15秒までランダム
wend
86:名無しさん@お腹いっぱい。
09/04/08 05:44:52 fwJAXoMx0
>>85
アプリケーションに直接送るには対応してないのが多いんだよね。
多分DirectInputとかいうのつかってるやつには使えないんだと思う。
知らないけど。
87:名無しさん@お腹いっぱい。
09/04/10 10:46:50 PbtivxSj0
マクロ実行中に、キー操作などで、マクロを強制的にとめることは出来ますか?
88:名無しさん@お腹いっぱい。
09/04/10 13:23:35 BPKFh7I00
>>87
それくらいはヘルプ読んでくれ
89:名無しさん@お腹いっぱい。
09/04/13 11:05:31 wzr692Rz0
IEをタブブラウザとして使用していて、指定の複数のページを開くようにしたいのですが、
以下(次のレス)の記述だと、アドレス欄にアドレスを貼り付けるのに失敗して、空白タブのままになる場合がたまにあります。
新しいタブを開いてからアドレス欄にアドレスを貼り付けるまでのウェイト(28行目)を長くしても同じでした。
どのように記述すればそういった問題なくIEで複数のページが開けるでしょうか?
一番いいのは、シーケンス的な処理なしにIEにアドレス渡すだけってやり方なんですが……。
IEの「タブ ブラウズの設定」は以下のようにしてます。
・「タブ ブラウズを有効にする」にチェック。
・「新しいタブの作成時には常に新しいタブへ移動する」にチェック。
・「クイック タブを有効にする」にチェック。
・「現在のタブの隣に新しいタブを開く」にチェック。
90:名無しさん@お腹いっぱい。
09/04/13 11:06:21 wzr692Rz0
// IEの宣言(?)
Ie = CREATEOLEOBJ( "InternetExplorer.Application")
Ie.visible = TRUE
// IEを起動する
Ie.navigate( "URLリンク(www.yahoo.co.jp)")
// IEのウィンドウIDを取得
IeId = GETID( "Internet Explorer")
// IEのウィンドウを最大化する
CTRLWIN( IeId, MAX)
SLEEP( 1)
// マウスカーソル退避
MMV( 1, 1)
SLEEP( 1)
DIM Address[3]
Address[1] = "URLリンク(www.infoseek.co.jp)"
Address[2] = "URLリンク(www.google.co.jp)"
Address[3] = "URLリンク(www.goo.ne.jp)"
91:名無しさん@お腹いっぱい。
09/04/13 11:08:39 wzr692Rz0
FOR i = 1 TO 3
// 新しいタブを開く
SCKEY( IeId, VK_CONTROL, VK_T)
SLEEP( 3)
SENDSTR( IeId, Address[i], 2, TRUE, TRUE)
SLEEP( 1)
SCKEY( IeId, VK_RETURN)
Ie_Wait( IeId)
NEXT
PROCEDURE Ie_Wait( Id)
i = 0
j = 0
REPEAT
SLEEP( 1)
IFB GETSTR( Id, 1, STR_STATUS) = "ページが表示されました"
i = i + 1
ELSE
i = 0
ENDIF
j = j + 1
UNTIL ( i >= 3) OR ( j >= 20)
FEND
92:名無しさん@お腹いっぱい。
09/04/14 00:17:40 TCCc8Omk0
>Ie = CREATEOLEOBJ( "InternetExplorer.Application")
↑これには時間がかかるが、起動完了を待ってない。が、待つ必要もない。
>Ie.navigate( "URLリンク(www.yahoo.co.jp)")
↑これにも時間がかかるが、待ってない。
SLEEP()があるにはあるが、効果がまちまち
> DIM Address[3]
> Address[1] = "URLリンク(www.infoseek.co.jp)"
配列を1から使っているが、UWSCの配列はこの場合0から3まで
まあ
>FOR i = 1 TO 3
0を飛ばして使ってるから問題はない
>どのように記述すればそういった問題なくIEで複数のページが開けるでしょうか?
SENDSTR() + SCKEY() でのページ移動をやめて
Ie.navigate( "URLリンク(www.yahoo.co.jp)") を使えばいい。
ほぼ確実にできるようになる。
うまくいかない原因は多分 Ie_Wait( IeId)
IEの操作ではよくある質問だけど、Navigateのあと待ちループをスルーすることがある。
キーEnter直後にはまだ前回の表示完了のメッセージが残ってるとか。
アドレスを入れる前にこのメッセージを消しておけば素通りはしなくなる。
93:名無しさん@お腹いっぱい。
09/04/14 08:53:44 i3CXPBbq0
ie上のFLASHでログインから作りこまれているサイトを操作したいのですが
ヘルプと多少のググリではヒントが得られませんでした。
ご存知の型いらっしゃいましたらひんとぷりーずです
94:名無しさん@お腹いっぱい。
09/04/14 09:23:50 /l9xSbch0
>>93
シェアウェア版のuwscにflash操作のサンプルスクリプト付いてるから見てみるといいよ
95:名無しさん@お腹いっぱい。
09/04/14 11:04:54 i3CXPBbq0
>>94
速レス多謝れす
96:名無しさん@お腹いっぱい。
09/04/14 19:18:25 msqZMedl0
アクティブウインドウ内の相対座標で操作したいのですがうまくいきません。
それ用のコマンドでもありますか?
97:名無しさん@お腹いっぱい。
09/04/14 20:01:48 QZ5xehbb0
STOPFORM(FALSE)でストップ窓出さないスクリプト実行中に
他のスクリプト多重起動できる?
-------
しかしかゆいところに手が届く言語仕様は本当に癒されるなぁ
わざわざ家で他言語のわけわかんない仕様と格闘したくないっちゅーねん
98:名無しさん@お腹いっぱい。
09/04/14 20:31:54 /l9xSbch0
>>96
mouseorg
99:名無しさん@お腹いっぱい。
09/04/14 20:35:32 mW/kK8aF0
>>97
<UWSC.INI>
NotMultiplex = スクリプト実行の多重起動を制限します (ファイルの関連付等からの実行)
0:制限なし、 1:一つのみ、 2:二つまで (数はUWSC本体も含む)
-9:制限なし、 -1:一つのみ、 -2:二つまで (マイナス値を付けた場合には '多重起動禁止'のダイアログは出ません)
100:名無しさん@お腹いっぱい。
09/04/14 20:48:45 msqZMedl0
>>98
アリガトー
101:89
09/04/14 20:52:08 jYCCUEGB0
>>92
回答ありがとうございます。
> Ie.navigate( "URLリンク(www.yahoo.co.jp)") を使えばいい。
> ほぼ確実にできるようになる。
これを単純に使用した場合、一番左のタブに指令が行くようなので
1番目のタブにyahoo
2番目のタブにinfoseek
……
といったことができませんでした。
> アドレスを入れる前にこのメッセージを消しておけば素通りはしなくなる。
消せるのですか。
調べてみますが、また分からなかったら教えてください。
102:名無しさん@お腹いっぱい。
09/04/15 05:34:31 qgyfHlhE0
>>99うん
ずっとUWSC.INIにNotMultiplex = 0あったはずなのに多重起動できなかったから謎だった
今STOPFORM(TRUE)入りのスクリプト一回実行したら
STOPFORM(FALSE)でストップ窓出さないスクリプト実行中にもちゃんと多重起動できるようになった
一体なんだったんだろう
103:名無しさん@お腹いっぱい。
09/04/15 06:02:54 HthVxZ2l0
>>101
新しいタブで開くならIE.navigate2の第2引数に次のどれかを指定すればいいらしい。
VBでは&H800だけど、UWSCでは$800と指定することに注意。
Const navOpenInNewTab = &H800
Const navOpenInBackgroundTab = &H1000
URLリンク(www.happy2-island.com)
英語なので分からないけど
Get Active Tab in IE7
URLリンク(social.msdn.microsoft.com)
UWSC掲示板でIE7の話題
URLリンク(www.google.co.jp)
どうしても既存のタブに開きたいのなら、
キー送信でタブを切り替えつつ、タブごとにGetActiveOLEObj()を実行して
それぞれのIEオブジェクトを取得すればいい。(多分できるんじゃないかな)
IE1~IE10のオブジェクトがあれば、たとえばIE5.navigate()で5つめのタブで開くとかできるでしょ。
IEオブジェクトは配列にすればスマートに書ける
dim IE[10]
IE[cnt] = GetActiveOLEObj()
IE[cnt].navigate()
104:名無しさん@お腹いっぱい。
09/04/17 09:08:00 3eWeWjWG0
同じIDの2つのウインドウに対してそれぞれ命令文実行するのはどうしたらいいんでしょう?
105:名無しさん@お腹いっぱい。
09/04/17 09:16:25 vJUVWnem0
ウィンドウ違ったらIDも違うだろ
106:名無しさん@お腹いっぱい。
09/04/17 09:40:53 3eWeWjWG0
GETIDしてもクラス名とか同じなんす・・・どこか見分ける方法あるんでしょうか?
107:名無しさん@お腹いっぱい。
09/04/17 10:19:36 7iQc6sCf0
だからIDだろ…おまえは何を言ってるんだ
108:名無しさん@お腹いっぱい。
09/04/17 11:06:27 3eWeWjWG0
自分でも何が言いたいのかよくわからなくなりました・・・
109:名無しさん@お腹いっぱい。
09/04/17 11:27:01 z2t7NbQ10
GETIDを使いたくてもウィンドウ名とかクラス名が同じだから取得できないってことじゃないの
110:横レス
09/04/17 16:01:13 oV5BKBHw0
>>108
109だとしたら
GETALLWIN( )で全ウィンドウのIDを読んでから必要なものだけ残す方向で
111:名無しさん@お腹いっぱい。
09/04/17 19:51:44 dPRHXoSq0
>>106
見分ける方法は表示されてるテキストとかボタンとかだな。
112:名無しさん@お腹いっぱい。
09/04/18 21:40:19 XXPYfPCL0
初心者の質問ですいませんがご教授ください。
[YES][NO]のメッセージボックスを順番に3つ出し、YESが2つ出た時点で
"YESが2つ貯まったよ"というメッセージボックスを出しOKボタンでUWSを
終わらせたいのですが、どうもうまく文が書けません。
以下のように書いてみたのですが[関数が正しく閉じていません]となって
しまいます。お願いします。
POINT = 0
IF MSGBOX("チェック1OK?",BTN_YES or BTN_NO) = BTN_YES then POINT = POINT + 1
IF MSGBOX("チェック2OK?",BTN_YES or BTN_NO) = BTN_YES then POINT = POINT + 1
IF POINT = 2 THEN MSGBOX("YESが2つ貯まったよ") AND EXITEXIT
IF MSGBOX("チェック3OK?",BTN_YES or BTN_NO) = BTN_YES then POINT = POINT + 1
IF POINT = 2 THEN MSGBOX("YESが2つ貯まったよ") AND EXITEXIT
113:名無しさん@お腹いっぱい。
09/04/18 21:42:10 RzsxB0wk0
マルチステートメントをANDでつないでる人なんて初めて見たわ。
IFBにして行分けなきゃ駄目に決まってるじゃん
114:名無しさん@お腹いっぱい。
09/04/18 21:53:58 wfTm4mrd0
これはひどい
115:名無しさん@お腹いっぱい。
09/04/18 21:55:44 XXPYfPCL0
>>113
ありがとうございました。
解決しました。
116:104
09/04/19 11:33:06 cQ6R7vH10
根本から勘違いしてるのかもしれないので質問させてください。
たとえば、新規に開いたメモ帳2窓だとGETALLWIN( )しても
ウインドウIDもクラス名も両方とも「無題 - メモ帳」「notepad」で識別する方法無いですよね?
117:名無しさん@お腹いっぱい。
09/04/19 11:45:06 yPMpTKOZ0
>>116
>>105
同じIDのウインドウなんてありません。
118:名無しさん@お腹いっぱい。
09/04/19 11:45:06 kETpq9Eh0
いやだからウィンドウIDは違うよ
119:名無しさん@お腹いっぱい。
09/04/19 11:57:47 8Ti6dx9WP
>>116
手動で二つのウィンドウを区別する場合、あなたはどう判断しているの?
左右に並べて右側のウィンドウが知りたいならSTATUS関数を使って座標を比較すればいいんだし
あなたは何をしたいんですか?
120:名無しさん@お腹いっぱい。
09/04/19 12:03:17 yPMpTKOZ0
>>116
もう一つ言うと、
> ウインドウIDもクラス名も両方とも「無題 - メモ帳」「notepad」で識別する方法無いですよね?
ウインドウIDとクラス名と言ってるけど
「notepad」は、確かにクラス名だけど
「無題 - メモ帳」は、ウインドウIDじゃない。タイトルです
あなたが言ってるのは、同姓同名で生年月日まで一緒の別人をどうやって区別するんですか?
しかもその二人は、免許証番号や電話番号まで一緒なんです。って言ってるようなものです。
121:名無しさん@お腹いっぱい。
09/04/19 14:08:17 Me2htpU20
>>120
いや、同姓同名の同住所でも免許証番号とかは違うから。
一人二役でない限りは。
>>116
うん。だから区別できないよ。
だから自分でExecとかCreateOLEObjして自分用のを作るんだよ。
122:名無しさん@お腹いっぱい。
09/04/19 15:40:48 8Ti6dx9WP
えーそうかな?
単に「タイトル」「クラス名」「ID」の意味が分かってないだけだと思う。でないと
>ウインドウIDもクラス名も両方とも「無題 - メモ帳」「notepad」で識別する方法無いですよね?
が全く説明つかない。
俺の解釈は以下の通り。
//2個未保存のメモ帳があって、それぞれ「AAAA」「BBBB」と入力されている想定
//104時点での考え
IDその1 = GETID("無題 - メモ帳", "notepad")//「AAAA」側のIDを取得したい
IDその2 = GETID("無題 - メモ帳", "notepad")//「BBBB」側のIDを取得したい
if IDその1 = IDその2 then MSGBOX("同じID") // だから104で「同じID」と言ってる
//109-110の重要キーワード「GETALLWIN」を聞いた116時点での考え
IDその1 = GETID("無題 - メモ帳", "notepad")//「AAAA」側のIDを取得したい
GETALLWIN() //これを使えば同名、同クラスの別IDを参照できると勘違い
IDその2 = GETID("無題 - メモ帳", "notepad")//「BBBB」側のIDを取得したい
if IDその1 = IDその2 then MSGBOX("同じID") // だから116で「GETALLWIN( )しても」と言ってる
//109-110が言ってた「GETALLWIN」の使い方
ウィンドウ数 = GETALLWIN()
FOR I=1 TO ウィンドウ数
IFB STATUS(ALL_WIN_ID[I-1], ST_TITLE) = "無題 - メモ帳" THEN
MSGBOX(GETSTR(ALL_WIN_ID[I-1], 1)) //「AAAA」「BBBB」が表示されるはず
ENDIF
NEXT
123:名無しさん@お腹いっぱい。
09/04/19 22:15:44 yPMpTKOZ0
>>121
だから、別人という前提が間違ってる。勘違いだと言ってるんでしょ
ユニークに割り当てられているはずのものが同じならそれは別なものじゃなくて同じものなんだから
124:名無しさん@お腹いっぱい。
09/04/20 03:19:17 EnXtAM1m0
>>123
>>116が言ってるのは別人という前提なんです。
>新規に開いたメモ帳2窓
これはメニューからメモ帳を2回クリックして2つ起動し、ウィンドウが2つある状態ということですよ。
2窓について
URLリンク(detail.chiebukuro.yahoo.co.jp)
それぞれちょっとずれたことを言ってますね。
IDは確かに一つの窓に一つで識別できるけど、
ID以外の方法で区別するのは難しいですよね。
>>104はIDとは何なのか分かってないので、IDと言ってるのは無視して考えないと。
メモ帳のステータス置いときます。
ID 57
PARENT -1
PROCESS 5868
Handle 9635392
ICON 0
VISIBLE 1
ACTIVE 0
BUSY 0
TITLE 無題 - メモ帳
CLASS Notepad
125:名無しさん@お腹いっぱい。
09/04/20 08:20:00 cLKDMuVI0
>>123は端折りすぎだけど、
同じ免許書番号の別人がいないように
同じウインドウIDの別ウインドウなんて存在しないんだから
その前提が間違ってるってことだろ。
別ウインドウかどうかなんて画面で一目瞭然なんだから
IDが同じってのが間違ってるってことは確定的に明らか
126:名無しさん@お腹いっぱい。
09/04/20 09:05:26 lfFRPe8i0
使い始めたのですがどうしても判らない点があるので教えて下さい。
WEB上でsubmitのボタンがdisabledを使用していて、一旦押すと
しばらく表記文字がグレーになって押せません。
このenable/disableの状態を取得する方法はありませんでしょうか?
宜しくお願いします。
127:名無しさん@お腹いっぱい。
09/04/20 10:01:29 EnXtAM1m0
>>126
状態 = IE.document.all.ボタン名.disabled
HTAていうの使いはじめてみたんだけど、これいいよ。
MS Office PremiumにMicrosoft Development Environment(MSE.EXE)てのがついてて、
HTMLコントロールのプロパティとかの一覧が出てくる。
最近の開発環境なら当たり前だけど、僕が持ってるのOffice2000だからそーとー前のなんだけど。
場所は"C:\Program Files\Microsoft Visual Studio\Common\IDE\IDE98\MSE.EXE"
・・・あれ?Officeの付録じゃなかったっけな・・・
WindowsのSystemフォルダと日時が同じだからXP Homeについてるのかな?
あ、これ使う場合のファイルはHTMLファイルで、
CreateObjectする場合は別にプロパティ一覧とか出てこないけど。
128:89
09/04/20 14:54:07 AwZv06Kt0
>>103
遅レスですが、以下で新しいタブで開きました。ありがとうございました。
Ie.navigate( Address, $800)
129:127
09/04/21 10:48:50 CPJxMALFO
UWSCは当初ゲームの自動操縦のために使い始めたんだけど、
今はIEを操作することが多いんですよね。
IEの操縦ならHTAでっていうかHTML+VBScriptにすると、画面も使えちゃって便利です。
HTMLのスクリプトならJavaScriptじゃないとって思ってたけど、
UWSCでBasic系の記述に慣れてるのと、HTAで使うのはJavaScriptじゃなくてJScriptなので、
どうせならVBScriptを使ってWeb用とHTA用をはっきり分けたほうがいいかなということで
VBScriptで行きました。
HTAで作ったツールの第一号をうpってるんで使ってみてください。
ていうかできればコレをダウンロードして、規制されてる僕たちのために代行やってください。
URLリンク(karimofu.org)
標準ZIP DLパス:siberia
130:名無しさん@お腹いっぱい。
09/04/21 12:15:22 zWBQpk48P
>>129
どう見てもウィルスです
本当にありがとうございました
カスペルスキーインターネットセキュリティ
2009
アクセスが遮断されました
入力したURLのWebページを表示できません
入力したURL:
URLリンク(karimofu.org)
21be/mofu1_6055.zip
このWebページはウイルスに感染しています
次のウイルスが見つかりました:Trojan-Downloader.JS.gen
この情報が正しくないと考えられるときは、ご利用のサービスプロバイダーにご連絡ください
情報:
Tue Apr 21 12:14:05 2009
カスペルスキーインターネットセキュリティ 2009
131:名無しさん@お腹いっぱい。
09/04/21 13:33:41 CPJxMALFO
>>130
あなたのパソコンがウィルスに感染してるか、うp炉だ自体がウィルスだと判定されているんだと思います。
そもそもZip圧縮されたものがウィルスとして活動できるわけないでしょう。偽装ならともかく。
AVG ClamWin Eset eTrust McAfee MicroWorld Norman Sunbelt VirusBuster の4・20の最新パターンで検索して一つも引っかかりませんでしたよ。
URLリンク(www.filterbit.com)
郵便補助ツール007.zip uploaded on 2009-04-21 04:13:23 AM UTC
Scan Completed in 172 ms.
Final Result NO VIRUSES DETECTED
郵便補助.hta uploaded on 2009-04-21 04:14:45 AM UTC
Scan Completed in 6.344 secs.
Final Result NO VIRUSES DETECTED
sleep.vbs uploaded on 2009-04-21 04:15:21 AM UTC
Scan Completed in 6.234 secs.
Final Result NO VIRUSES DETECTED
同じものを別のとこに置いたから、こっち↓からのダウンロードを試してみてください。
URLリンク(scripts.web.fc2.com)
132:名無しさん@お腹いっぱい。
09/04/21 13:44:41 ghaE4/Ws0
>>ID:CPJxMALFO
DLする気になれないからウィルスかどうかは判らんが、HTAとJScriptの話題を続けるなら
他所でやってくれ。
133:名無しさん@お腹いっぱい。
09/04/21 14:00:12 KISr4rZl0
>>131
帰れカスが
134:名無しさん@お腹いっぱい。
09/04/21 14:25:54 zWBQpk48P
URLリンク(www.virustotal.com)
にて>>129と>>131をチェックしました。
結果は以下の通りです。
URLリンク(www.virustotal.com)
皆さん注意してください。
>>131が言っているのは全くの嘘、詐欺、デタラメです。
最近のウィルス対策ソフトは圧縮データをバックグラウンドで自動で解凍し、
中身に問題のあるファイルが含まれているかをチェックしています。
圧縮されている「郵便補助.hta」というファイルはウィルスです。
まだ対策が始まったばかりで未対応のウィルス対策ソフトもあります。
既に実行された方は
URLリンク(www.kaspersky.co.jp)
にてウィルスがどこにあるかを調査し、手動で削除する必要があります。
(無料のため自動では削除されません)
皆様、くれぐれも実行などせぬように注意願います。
135:名無しさん@お腹いっぱい。
09/04/21 15:44:40 hCW2ez470
Trojan-Downloader.JS.gen でも何でもないけど
HTTP_GETしてるスクリプトは誤判定されるんだろうな
どっちにしろスレ違いだし、もうあきらめなー
136:名無しさん@お腹いっぱい。
09/04/21 17:20:34 EjoW6ZpV0
落として検査してソース見たよ
137:名無しさん@お腹いっぱい。
09/04/21 19:21:07 hCW2ez470
俺も見たよ 問題ないだろ
関数GetTextByURLだけ抜き出して>>134でチェックすると引っかかる
F-SecureとかKasperskyはあまりアテにならんってことだな
138:名無しさん@お腹いっぱい。
09/04/21 23:19:31 KISr4rZl0
問題ないとかじゃなくてスレ違いだっつの
139:名無しさん@お腹いっぱい。
09/04/22 17:32:54 N45Vs4AF0
初心者です
座標(X,Y)の色が黒で無いという文を作りたいです
PEEKCOLOR(X,Y)= $181818
否定の ! はどのようにつければいいのでしょうか
試行錯誤してみましたが機能しませんでした
140:名無しさん@お腹いっぱい。
09/04/22 19:50:11 5189R7q50
<>
141:名無しさん@お腹いっぱい。
09/04/22 21:33:39 5EWcb3vi0
思うんだが181818だけが黒じゃないよね?
142:名無しさん@お腹いっぱい。
09/04/22 21:37:39 GhDeitu20
>>139
!(PEEKCOLOR(X,Y) = $181818)
143:名無しさん@お腹いっぱい。
09/04/23 00:06:35 kwl9x0DH0
>>142さん
ありがとうございます
機能しました
144:シベリアよりのお手紙
09/04/23 13:39:24 VMVPYLE80
■ブラウザで掲示板に書き込む操作【送信ボタンクリック編】
初心者に簡単なほうから順に
※IDやIEは適切に取得している前提
(1) ClkItem(ID, "書き込む", CLK_ACC)
(2) IELink(IE, "書き込む")
(3) IELink(IE, "", 1)
(4) IE.document.all.[アイテム名].click()
(5) IE.document.[フォーム名].submit()
(1),(2)は表示されているボタン名を指定してクリックする方法で、簡単です。
アイテム名、フォーム名はWebページのソースを見て確認する必要があります。
「name=」や「ID=」で名前がつけられてないときは、forms[0]やitems[0]などと指定します。
【解説】
また、ボタン名は「submitです」
(1) ClkItem()はローカルアプリケーションの操作用ですが、CLK_ACCを指定するとWebページの操作も可能になります。
(2)と(3) IELink()は、<a>タグによるリンクをクリックするものです。
標準以外のボタンやテキストリンクの場合に使えます。
(2)テキストで書かれたリンクの場合の書き方です。
(3)画像リンクの場合の書き方です。”ログイン”などと表記されていても、画像が埋め込まれている場合はこちらを使います。
(4)と(5) DOM(Document Object Model)と呼ばれるアクセス方法です。
2ちゃんねるでは(5)については動きません。ボタン名がかぶっているからかも。
145:名無しさん@お腹いっぱい。
09/04/23 14:11:23 ToP+iXmu0
どうも配列変数が巨大(x{1000]とか)なスクリプトがあるとUWSC関係のいろいろに影響するっぽい
起動オプションでUWSC用メモリ確保量指定できるといいんだけど
146:名無しさん@お腹いっぱい。
09/04/23 14:34:53 hbhpeBX00
大昔のPCとビデオキャプチャカード(予約録画機能なし)+UWSCで録画専用PCを作成してみた。
rec.uws 番組タイトル 分数
をuwscのタイマーにセットし、(タイマーは40個分あるので充分)
rec.uwsは時間になるとchkbmpで録画ボタンを押し、分数で与えた時間が経過すると停止ボタンを押す。
終わったらmpgデータを、
録画済みフォルダにタイトル+数字.mpgが既にあれば、
タイトル+(数字+1).mpgにリネーム、なければタイトル001.mpgにリネーム
リネームしたmpgを録画済みフォルダに移動する。
そのうち、
録画しない空き時間にmpgをMediaCoderでaviに自動変換して入れ替えていく機能も追加しようと思う。
四、五万もだせば最新・高機能のHDDレコが買えるのだから、こんなもの作って喜んでいるのは貧乏人の証明以外何物でもないのだが。
手間はほんの数時間だからいいんだよ!
147:名無しさん@お腹いっぱい。
09/04/27 17:00:06 IAlYDpEu0
URLリンク(siromasa.xxxxxxxx.jp) ←ここのzip解凍を参考に
Dim FilePath_Lha
Dim DirPath
FilePath_Lha=PARAM_STR[0]
DirPath=PARAM_STR[1]
UnLHA32(FilePath_lha, DirPath)
Function UnLha32(a_FilePath_Lha, a_DirPath, a_Command = "e", a_Option = "-y")
a_DirPath = a_DirPath + Format(ChrB(0), 1)
PathAddBackslashA(a_DirPath)
Dim szCmdLine = a_Command + " " + a_Option + " " + DQ(a_FilePath_Lha) + DQ(a_DirPath)
Dim t_Len = $1000
Dim t_Buff = Format(ChrB(0), t_Len)
UnLha(0, szCmdLine, t_Buff, t_Len)
Result = t_Buff
FEnd
DEF_DLL UnLha(HWND, STRING, var STRING, DWORD) :INT :UNLHA32.DLL
DEF_DLL PathAddBackslashA(var String) :String :ShlwApi.DLL
Function DQ(a_Path)
Result = "<#DBL>" + a_Path + "<#DBL> "
FEnd
とやってみましたが
「Not DLL Function:UnLha」
「20行目:UnLha(0, szCmdLine, t_Buff, t_Len)」と出て上手くいきません。
unlha32.dllはsystem32の中にありVBでは上手くいきます。
解決の糸口を教えてください。
148:名無しさん@お腹いっぱい。
09/04/27 19:14:42 QD9XwKZQP
>>147
DEF_DLLは、UWSCの関数と違って使う前に定義しないといけない。
ファイルの先頭に書いておけば間違いないと思う。
149:名無しさん@お腹いっぱい。
09/04/27 21:03:06 H7TyYdrJP
>>147
ヒント
大文字と小文字を区別して書く習慣をつけよう
150:名無しさん@お腹いっぱい。
09/04/27 23:58:18 ITcnKio80
>>148
>DEF_DLLは、UWSCの関数と違って使う前に定義しないといけない。
これ相当前に解消されてるハズ。
現に関数部の後にまとめてコピペしても動くし…。
>>149
関係ないような…
>>147
調べてないけど、
>DEF_DLL UnLha(HWND, STRING, var STRING, DWORD) :INT :UNLHA32.DLL
これ合ってる?
DEF_DLL UnZip(HWND, STRING, var STRING, DWORD) :INT :UNZIP32.DLL
を単純に真似しただけという理由なら駄目だと思うよ…
オイラが間違ってたらスマン。
151:名無しさん@お腹いっぱい。
09/04/28 00:05:16 UnYs7tqY0
>>147
DLL系は敷居が高いなぁ…と言ってしまうようなにわかスクリプターとは俺のこと。
今動かしてるのはこんな感じ。関数作るならその都度宣言してもいいんじゃないかなぁ。
…なんで宣言した引数より少なくて動くのかはしらね。逆に在ると動かないのに気づいたのは奇跡。
lha("c:\aaa\", "c:\aaa.lzh")
function lha(in, out)//入力はフォルダ専用
DEF_DLL Unlha(Long, String, String, Long) :Long :UNLHA32.DLL
dim hWnd
in = "<#DBL>" + in + "<#DBL>"
out = "<#DBL>" + out + "<#DBL>"
commandline = "a -drn "+ out +" "+ in
result = Unlha(hWnd, commandline)
fend
152:名無しさん@お腹いっぱい。
09/04/28 00:18:30 lagyuQtDP
>>151
それで動いてるんなら、戻り値がLongとすべきところをintにしてるのが問題っぽいね。
153:名無しさん@お腹いっぱい。
09/04/28 00:36:03 UnYs7tqY0
>>151
リザルトなんて取ってもfalseに成るだけだしなぁ。まだまだ詰めが甘過ぎるなぁ。
ところで、こちらからの質問なんだけど…
httpからのダウンロード時に URLDownloadToFileA を使っているわけだが
これを使うとスレッド動作じゃなければ、UWSCが無反応になってしまう。
…つーか専有するのはわかるけどな。UWSCでスレッドは制御しにくいから嫌なんだ。
かといって WinHttp.WinHttpRequest.5.1 等のものを使っても同じく専有して無反応。
外部にダウンロードに必要な取得cookieを渡す仕様は嫌なのでUWSCの中で完結したい。
なんかスレッドの良い処理方法は無いですかね。
…UWSCのスレッドは終了が判らないから同時ダウンロード数が弄り難いんだ。
もう downloadBalancer とかの関数を作って、偶に抜けたりするのは勘弁だ…
…調べたり試したりするほどに無理な気がしてきたぜ。素直に別のEXE作ろうかなぁ…threadめ…
154:名無しさん@お腹いっぱい。
09/04/28 07:01:41 lagyuQtDP
>>153
こんな風にやればいんじゃね?知らないけど。
ThreadCnt = 0
for i = 0 to listcnt - 1
ifb cnt <= 3 then
thread downloadfile(URLList[i], FilePathList[i], ThreadCnt)
endif
sleep(1)
next
function downloadfile(URL, FilePath, var cnt)
cnt = cnt + 1
result = URLDownloadToFile(0, URL, FilePath, 0, 0)
cnt = cnt - 1
fend
155:147
09/04/28 10:20:25 C7CacfK90
>>151 他レスを頂いた皆様ありがとうございます。
151氏のソースでさっくり動きましたのでパックリぱくらせていえ参考にさせて頂きました。m(._.)m
156:名無しさん@お腹いっぱい。
09/04/28 12:35:26 r3leceUUP
ちなみに>>147が動かなかった原因はここ。
>DEF_DLL UnLha(HWND, STRING, var STRING, DWORD) :INT :UNLHA32.DLL
関数名が間違っている。正しくはUnlhaね。
DLL関数自体は厳密に区別する。もともとC言語で生まれた概念だし。
だから関数が見つけられずに「Not DLL Function:UnLha」って言われているだけ。
大文字と小文字を区別して書く習慣をつけない限り間違い続けるよ。
157:147
09/04/28 13:02:54 C7CacfK90
>>156
おっしゃるとおり検証して確認いたしました。エラーは正確に正してくれていたのですね。
勉強になります。感謝です。
158:150
09/04/28 23:09:04 naDOL5i60
>>156 >>147
あぅ、気づかなかった…
スレ混乱させてスマンかった。反省。
159:名無しさん@お腹いっぱい。
09/05/04 20:11:23 W27H0amO0
任意の長文をテキストボックスに入力させる方法は?
アルファベット数文字だったら
KBD(VK_A,CLICK,40)
KBD(VK_H,CLICK,40)
KBD(VK_O,CLICK,40)
とかやっちゃうんだけど。
クリップボードを使うしかないのかな。
長文は固定じゃないから文章を入力したテキストファイルを複数用意しておいて
その内容をどうにかしてクリップボードに入れて
貼り付けって考えてるんだけど
どうかな?
もっとスマートなやりかたあるのかな。
160:名無しさん@お腹いっぱい。
09/05/04 20:20:44 6PozxKUv0
SENDSTR使えよw
161:名無しさん@お腹いっぱい。
09/05/04 20:30:09 VCE73Rq/0
おおおぅ!こんな関数があったとは!
162:名無しさん@お腹いっぱい。
09/05/04 20:48:25 i5Em8Ahd0
( ゚д゚) え? 使用頻度も多いし、CLKITEMなんかとともに関数の中ではまっ先に覚えるものだと思うんだが
163:名無しさん@お腹いっぱい。
09/05/04 21:05:57 jmZu6dcUP
だから初心者なんだろ?
164:名無しさん@お腹いっぱい。
09/05/04 21:25:47 /XePhOys0
>>162
すまん、目的が目的だったからchkimgとifbが先だった。
まぁ、用途によって覚えるモノは違うさ。
さて、俺もSENDSTR覚えたぞ。あとはhtmlソースから任意の文を抜き出す方法を理解してくる。
165:名無しさん@お腹いっぱい。
09/05/05 14:09:24 0o+yJk7+0
メモ帳が起動していなかったら、起動するってどうやって記述すればいいの?
166:名無しさん@お腹いっぱい。
09/05/05 14:28:20 xNlAE/wF0
ヘルプに書いてあったような。
167:名無しさん@お腹いっぱい。
09/05/05 17:32:47 7o1dfAoW0
ifb getid("メモ帳") < 0
exec ("notepad")
endif
.
.
.
とか?
exec()は
NotepadID = exec("notepad")
とかやっとくと後から融通が利くと思う。
168:名無しさん@お腹いっぱい。
09/05/05 18:03:41 OvZysuYR0
メモ帳が起動してるケースで
「NotepadIDが取得できずにエラーが出ました」
って質問が来たりして。
169:名無しさん@お腹いっぱい。
09/05/05 18:26:15 0o+yJk7+0
>>167
ありがとうございました。
1歩前進し出来ました。
>>168
初めて1時間。なんとなくわかってきました。
170:名無しさん@お腹いっぱい。
09/05/05 19:54:56 7o1dfAoW0
あとフルパスも使えたりする
171:名無しさん@お腹いっぱい。
09/05/06 14:03:18 b6Xj8bdU0
スクリプト超初心者で意味不明です。
UWSCはそれよりは少し簡単だとききました。
キャッシュバックモールの検索で使う不純な目的ですが…
UWSC Free版 Ver4.5aで
①文字を指定して検索
②11~20秒ランダムで時間指定して間をあける。
③検索結果のページから、検索ページへページを戻す。
④ ①とは違う文字で検索
①~④の繰り返しをこのソフトでできますか?
この方法や手順のコツがあれば教えてください。
172:名無しさん@お腹いっぱい。
09/05/06 16:15:12 tpC5BtzM0
>>171問題なくできる
コツとしてはフレーム使用サイトだった場合IEGET/SETDATAが使えないから
a_tags = IE.document.frames("そこのフレーム名").document.getElementsByTagName("a")
a_tags.item(0).innerHTMLなりa_tags.item(6).clickなりするところ
ducumentオブジェクト(DOM)の詳しい使い方はUWSC以外でも共通なんで必要になったらネットにもいろいろ情報転がってる
173:名無しさん@お腹いっぱい。
09/05/06 16:59:46 okQLn1BE0
俺なら有料で教えてやるよ
どうせ調べ方も分からないだろうし、調べる気もないだろうし
1手順1000円、合計4000円でちゃんと動くやつ用意してやる
キャッシュバックモールだけでなくあらゆる場所で使えるから
先行投資だと思えば安いもんだろ
174:名無しさん@お腹いっぱい。
09/05/06 17:49:39 +2INV9Pa0
Drop on Scriptを使うなど出先のPCのレジストリに影響を与える方法を避けて、
USBからアプリを起動する環境で便利にスクリプトを使う方法をいろいろ調べていたら、
Windowsが標準搭載しているbatやJscriptにスクリプトを組み込んで使う方法があると知りました。
【.cmd】バッチファイルスクリプト%4【.bat】 スレリンク(tech板)
URLリンク(pc.nikkeibp.co.jp)
URLリンク(www.geocities.jp)
Jscriptやなでしこは、batファイルにそれぞれのスクリプトを記述して、
複数行コメント機能や、複数行変数の機能をうまく利用して
例 "M:\PortableApps\nadesiko_lang\vnako.exe" "%~0" %*で
引数も渡せるようです。
同じようなことをUWSCでやろうとしたら、拡張子uwsをチェックしてるらしくて
はじかれてしまいました。
起動オプションに拡張子チェックをしないなんてオプションがあると、
簡単に出来るように思うんですけど、みなさんどう思います?
175:名無しさん@お腹いっぱい。
09/05/06 18:27:13 O17l4RXh0
どうでもいい
176:名無しさん@お腹いっぱい。
09/05/06 18:54:49 X7Us3g8sP
もう少し要約して書いてくれないか?
事象が羅列されてはいるが関連性が理解できない内容になっている
177:名無しさん@お腹いっぱい。
09/05/06 19:10:59 X7Us3g8sP
リンク先を読んだ。
UWSCのスクリプトで記述されたファイル"XXX.bat"がある。
UWSC.exeのパラメータにそのファイル名を渡して動かしたい。
UWSCに拡張子チェックがあって~.uwsでないと動かない。
拡張子チェックなんて不要では?
という解釈で合っているか?
178:名無しさん@お腹いっぱい。
09/05/06 20:19:44 X7Us3g8sP
関連付け等でレジストリをいじりたくない、かつ
batファイルダブルクリックだけでUWSCスクリプトを動かしたいという意味だとしても
これで充分動くだろうし・・・
となると>>177は違うか
TEXTBLOCK doscmd
copy "%~0" aaa.uws
"C:\Program Files\uwsc\uwsc.exe" aaa.uws
del aaa.uws
exit
ENDTEXTBLOCK
MSGBOX("Hello, World")
179:171
09/05/07 07:35:20 FXknwHL70
>>172
>>173
ありがとう。
昨日自己流で開発した物を先ほど試してみた。
お粗末なスクリプトだけど、機能的にはまあOKでした。
でも1つだめな点。
ワイヤレスネットなので、ほんの時々
接続が不安定になってページ表示が遅れます。
それが原因で100個検索の途中でエラーになることがあります。
これの解決方法を教えてください。(おねがします・・)
180:名無しさん@お腹いっぱい。
09/05/07 08:48:01 E2Y09ngh0
俺なら有料でチェックしてやるよ
どうせ調べ方も分からないだろうし、調べる気もないだろうし
5000円でちゃんと動くやつ用意してやる
キャッシュバックモールだけでなくあらゆる場所で使えるから
先行投資だと思えば安いもんだろ
181:名無しさん@お腹いっぱい。
09/05/07 09:59:26 Q7hf5WbeP
5000円も出すんならそういうソフトウェア探したほうが確実なような。
182:174
09/05/09 13:10:27 U62YEW5T0
>>177 >>178
標準で関連付けされ、ファイルのドロップを受けられるbatやJSに相乗りできれば
相手のPC上でUWSCが関連付けされてなくても気兼ねなくスクリプトを動かせるという話です。
任意のドライブのUSBメモリにある指定のバージョンのUwsc.exeとスクリプト1つと、
BATの場合なら"%~dp0uwsc.exe" "%~0" %* の記述で、相手PCへ影響を最小限に抑えて
スクリプトを実行できるのは便利だな、と。(inputでドロップ受ける使い方も便利ですけどね)
GET_UWSC_DIRにiniやCall用のスクリプトをまとめて置くような大雑把な使い方も気兼ねなく出来るし。
拡張子チェックをしない起動オプションがあれば、いろんな環境で
融通の利く使い方も可能かな?と思ったわけです。
183:174
09/05/09 13:31:22 U62YEW5T0
>>178
新たにファイルコピーとかじゃなくて、そのまま動いたほうがいいかなぁと思って。
たかがユーザーで生意気なこといってすんません。
184:名無しさん@お腹いっぱい。
09/05/09 19:00:40 C0iNuRh9P
>新たにファイルコピーとかじゃなくて、そのまま動いたほうがいいかなぁと思って。
だったら作者に直接頼めばいいじゃん。賛同者を募っても意味がない。
「他の方法でも実現可能ですが他のスクリプト言語と動作を合わせたいので拡張子チェックをやめて下さい」
って言えば実装してくれるかもよ。
コピーがダメで、そのまま動くのは良いとする合理的理由が提示できれば可能性は高まる。
185:名無しさん@お腹いっぱい。
09/05/09 23:38:59 tfFS9/XZ0
UWSC起動すると重くなるのはなぜですか?
186:名無しさん@お腹いっぱい。
09/05/09 23:54:05 UdxXVJFK0
>>185
uwscが動いているからです
187:名無しさん@お腹いっぱい。
09/05/10 00:16:08 aZKLejEf0
exe化すると3倍早くなるとか・・・そんなオマケはないかw
188:名無しさん@お腹いっぱい。
09/05/13 20:15:34 GlHeCM5a0
REPEAT ~~ UNTIL 文を使用して
REPEAT
処理
UNTIL 式 AND(OR) 式
といったように判定文を二つとかにできるのでしょうか?
189:名無しさん@お腹いっぱい。
09/05/13 20:29:46 2MaqNuwBP
>>188
もちろん可能
なんで?
190:名無しさん@お腹いっぱい。
09/05/13 20:47:34 GlHeCM5a0
>>189
もちろん軽くやってみたんですが
エラー吐き出してしまったので・・
少しがんばってみます
191:名無しさん@お腹いっぱい。
09/05/13 20:59:38 ps5sVa6O0
括弧で囲ってみるとか
192:名無しさん@お腹いっぱい。
09/05/13 21:06:35 GlHeCM5a0
>>191,189さんありがとうございます
自分は一度できないと投げ出してしまう性格なようで・・
できるという確信が欲しかったのが本音です
できました
193:名無しさん@お腹いっぱい。
09/05/20 00:52:21 taNHDTpg0
皆さんノートパッドで編集してるのでしょうか?良い編集ソフトがあれば是非教えてください。
194:名無しさん@お腹いっぱい。
09/05/20 01:04:56 T/+OSZKf0
TeraPad
195:名無しさん@お腹いっぱい。
09/05/20 01:29:23 taNHDTpg0
>>193
これは軽いし、いい感じですね
196:名無しさん@お腹いっぱい。
09/05/20 07:50:22 hQe8MsJi0
Hidemaru
197:名無しさん@お腹いっぱい。
09/05/20 08:43:56 VScXm2khO
秀丸いいよ
強調表示すれば色が付いてソースが見やすいし編集が楽しい
マクロも駆使すればデバッグも楽にできる
198:名無しさん@お腹いっぱい。
09/05/20 13:31:25 DmkRHCKd0
uwsc pro付属のデバッガで書くのが便利だな
199:名無しさん@お腹いっぱい。
09/05/20 14:32:45 IzKgsD9D0
>>198
それはないw
最低でも入力補完と強調表示はないと…
200:名無しさん@お腹いっぱい。
09/05/20 16:50:28 /qJ6n5kw0
UWSCの入力補完してくれるエディタなんてあるの?
201:名無しさん@お腹いっぱい。
09/05/20 17:07:39 QCGx1Srl0
私は、メモ帳の編集からやってます・・・
開くの面倒だし一括で管理できればいいなーと日々思ってる。
あと、画像の保存。これの範囲指定がちょーめんどう
202:名無しさん@お腹いっぱい。
09/05/20 19:38:45 +bwb5Hvf0
秀丸でのUWSCコーディング環境例はこんな感じ
大規模な開発はしないので予約語や標準関数の単語補完で十分やっていける
メモ帳よりは断然簡単に出来そうだし、何より楽しそうでしょ?
URLリンク(sakuratan.ddo.jp)
URLリンク(sakuratan.ddo.jp)
他のエディタ使ってる人がいたらキャプチャ画像見せてくれ
203:名無しさん@お腹いっぱい。
09/05/20 21:11:37 0p3fmBht0
>>202
気色悪い
204:名無しさん@お腹いっぱい。
09/05/20 21:54:00 QjV8JIkZ0
>>202
この環境の作り方を教えてください。
UWSC用強調表示定義ファイルだけは導入してますが、、、
205:名無しさん@お腹いっぱい。
09/05/20 23:14:03 GYzKVKFu0
センスねえなおい
206:名無しさん@お腹いっぱい。
09/05/21 00:52:04 Sv52ydXqP
URLリンク(scripts.web.fc2.com)
入力補助もあったらたしかにいいな。
でも入力補助はオブジェクトとかを自動的にリストしてくれないとあんまり使えないよね。
207:名無しさん@お腹いっぱい。
09/05/21 10:46:37 33MxVP3d0
>>205
センスあるキャプチャ画像くれ
208:名無しさん@お腹いっぱい。
09/05/21 10:47:45 9aQAYLO60
>>204
ファイルタイプ別の設定で色々変えると実現できるよ。
・UWSC用強調表示定義ファイルは秀丸ライブラリのは古い&欲しい定義が足りない&単語補完にも使いたいので自分で作成
・複数行コメントで表示方法をユーザー定義で手直しする
//コメント, "~"文字定数,TextBlock~EndTextBlockスクリプト部分
・単語補完の自動表示をON、表示方法を「リスト」にする
単語補完の検索対象を「現在編集中のテキスト」、辞書ファイルを「強調表示ファイル」に指定
くらいかな。他にも色々変えているかも。
>>206
確かにCOMオブジェクトは大変ですね。統合開発環境のように文脈の解析まではしないので自分で入れてくしかないし。
まあUWSC関数名とかのスペルミスを減らしてくれるのでそれだけでも十分重宝してます。
209:名無しさん@お腹いっぱい。
09/05/21 16:06:53 pi7xZiR70
秀丸4200円払って使ってるのか・・?
210:名無しさん@お腹いっぱい。
09/05/21 16:15:21 9GUKUYkK0
つ秀丸エディタフリー制度
211:名無しさん@お腹いっぱい。
09/05/21 21:10:25 5yMAa7Qe0
>>210
それは知らなかったなぁ…
スクリプターでもいいのかしら…申し込んでみるしかないか。
とはいえ、今のsakuraから乗り換えるのも難儀だわ。
212:名無しさん@お腹いっぱい。
09/05/21 21:25:39 ffiJf+S4P
秀丸は10年以上使えるから普通に払えよw
213:名無しさん@お腹いっぱい。
09/05/22 06:19:00 PW1wQXFN0
AutoItでキーボードを数秒毎にキーをアプリで押し続けるマクロを作りたいのですが、
USWCと文法違ってるでしょうか?
214:名無しさん@お腹いっぱい。
09/05/22 14:37:26 rPrKib1mP
>>213
そりゃ違うだろ
215:213
09/05/22 15:47:04 PW1wQXFN0
英文ヘルプ解読かなりしんどいです・・
AutoItならツール開発できるんだけどなぁ
216:名無しさん@お腹いっぱい。
09/05/22 17:18:30 1wh/neDN0
UWSC ProならEXE化出来るよ
頑張って英訳する・・・AutoIt
お金払って英訳不要・・・UWSC pro
217:名無しさん@お腹いっぱい。
09/05/22 17:47:27 WtyVQNVr0
テンプレにはWindowController入ってるけど、誰も使ってないのかね
218:名無しさん@お腹いっぱい。
09/05/23 09:03:37 ximSvABd0
フリー板を使用しています。
意図としてはclititle[]に入ったものからひとつ選択させることです
が、私の環境ではSLCTBOXで"A","B","5"が選択肢に出てしまいます。
なぜわざわざ、変数を使うかと言うといずれ変更する場合にファイルの先頭をいじればすぐに対処できるようにです
PUBLIC clititle[4]="A","B","C","5"
a=SLCTBOX(SLCT_BTN or SLCT_NUM,20,"どれかを選んでください",clititle[0],clititle[1],clititle[2])
sleep(1)
219:名無しさん@お腹いっぱい。
09/05/23 12:02:53 2Paz/uqW0
公式の掲示板見ろ
220:218
09/05/24 01:11:29 J+66nvQu0
>>219
ありがとうございました
おかげで見つけることが出来ました
221:名無しさん@お腹いっぱい。
09/05/24 12:50:52 Xb8rGLSU0
>>217
.Net Framework入れなきゃいけないのがあれだけど、ウィンドウの階層とか見れて便利だよ
222:名無しさん@お腹いっぱい。
09/05/26 22:13:36 +RDILU9c0
画像判定で自動クリックするスクリプトを組んでいるんですが、
「もし画像Aが無い場合は画像Bをクリックする」を実行するにはどう書けばいいんですか?
「もし画像Aがある場合は画像Aをクリックする」みたいなことはできています
223:名無しさん@お腹いっぱい。
09/05/26 23:14:40 TZB2jF9QP
>>222
その質問定期的にあるんだけど、まだ解決してないのか新参なのかはっきりしてほしいところ。
検索したらいろいろ出てくるはずだし。
224:名無しさん@お腹いっぱい。
09/05/26 23:22:42 AJ3m6Ie9P
戻り値 = CHKIMG( "画像A" )
IFB 戻り値 = FALSE THEN
//画像Bをクリックする処理をここに
ENDIF
225:名無しさん@お腹いっぱい。
09/05/27 13:32:12 la2dJ90hO
ハッシュテーブルについて質問です
使い方は分かるのですが有効な使い道が思いつきません
これの有無で大幅にソースが分かりやすくなるとか
処理効率が良くなる例を教えて頂けないでしょうか?
226:名無しさん@お腹いっぱい。
09/05/27 16:03:12 pfWyrr2F0
>>225
>ハッシュテーブル
連想配列のこと言ってるんかいな?
227:名無しさん@お腹いっぱい。
09/05/27 16:04:07 kSbeGETG0
>>225
利用するのとしないのとベンチマーク用コード書けばすぐわかる
ぱっと書けるのがUWSC最大の利点なんだから
228:名無しさん@お腹いっぱい。
09/05/27 21:32:52 K6/6pBlWP
>>225
僕が自動ログインスクリプトを書いたとき、
Webサイトごとに項目がいろいろあったんだけど、
それらを一人分の1件のデータから引用するように作ったんだけど、
項目名をキーに使うと管理しやすかったよ。
つまり、2次元配列は項目名をつけてないExcelのシートみたいなもんで、
連想配列はそれに項目名をつけて名前で定義するようなもの。
データを探すコードが必要がなくなるので簡単に書けるようになる。
スクリプトでデータを探すループを書くと遅いが、
ネイティブコードで検索する連想配列は高速だと思う。
ただ、そんな大量のデータを扱うこと自体が、特にUWSCでは難しいんじゃないかな。
大量なデータを確実に高速に扱いたかったらDBのCOMを使ったほうがいいと思う。
229:名無しさん@お腹いっぱい。
09/05/29 17:26:57 7S51W74l0
EXECとかで起動したアプリでウインドウサイズが変更可能な場合
ウインドウサイズの変更ってどうやるんでしょうか?
230:229
09/05/29 17:41:16 7S51W74l0
調べたらこれで出来そうですね、試してみます。。
URLリンク(www.e-dcz.com)
231:229
09/05/29 17:47:02 7S51W74l0
ACW(GETID(GET_ACTIVE_WIN),100,100,100,100,0)
とかやると出来ました。
お騒がせしました。(´・ω・`)
232:横レス
09/05/29 19:02:43 8NGBVTKQ0
>>228
>DBのCOM
落し物部屋にDAO,ADO(まぎらわしくない名前なかったんかいw)のサンプルあるね
Windows標準でついてくるデータベースエンジン(MSDE)初めて意識的に使った
(なんかのソフトが使ったことはあるんだろうけど)
233:名無しさん@お腹いっぱい。
09/05/30 12:02:21 Wil6mTmF0
それなりにスクリプトかけるようになるとテラ便利だなこれ…
今まで細かいのはVBScript とかでやってたけど
UWSCにしようかな
234:名無しさん@お腹いっぱい。
09/05/31 03:12:03 ywUF+cK10
低脳ですいません
Aという画像があった場合Bという画像をダブルクリック
Cという画像があった場合3回だけクリックする
Dという画像があった場合クリックして文字を@@@と打ち込む
こうゆのってできますか?
235:名無しさん@お腹いっぱい。
09/05/31 05:06:28 FAKWGChRP
>>234
出来るけどリアルタイムな監視だと実用にならんよ
236:名無しさん@お腹いっぱい。
09/05/31 11:44:56 22DZlQuL0
>>233
欠点は、ほかのスクリプト言語に比べて起動が遅いことくらい。
237:taka
09/05/31 16:52:38 rOChwOYf0
c:\b のフォルダーのファイル (*.a (約5000件))を一括変換したいのですが?
238:名無しさん@お腹いっぱい。
09/05/31 17:10:57 onT5qa6F0
いいですよ
何をどう一括変換するか知りませんが
ここで許可とらなくても全然OKです
239:taka
09/05/31 18:54:29 rOChwOYf0
Dim cnt=getdir("c:\b\","*.a")
for i=0 to cnt-1
FN=GETDIR_FILES[i]
ACW(GETID("ac - FN"),-8,-8,1296,1008,0)
BTN(LEFT,CLICK,624,61,188)
ACW(GETID("出力設定","#32770"),407,297,467,399,0)
BTN(LEFT,CLICK,734,673,203)
ACW(GETID("ac - FN"),-8,-8,1296,1008,0)
ACW(GETID("ac","#32770"),467,404,346,185,0)
BTN(LEFT,CLICK,767,564,156)
next
上記でエラーが出るのですが わかる方がいらっしゃいましたらご指導お願いします。
240:名無しさん@お腹いっぱい。
09/05/31 19:59:41 7E7hpKabP
まず大きく変なのが、3行目でFNにファイル名を入れているにもかかわらず
FN自体を使用する処理がありません。
>ACW(GETID("ac - FN"),-8,-8,1296,1008,0)
から
>BTN(LEFT,CLICK,767,564,156)
までは開いているウィンドウに対して、何らかの処理をしたがっているようには見えますが
常識的に考えると"ac - FN"のような名称のウィンドウは見つかるはずがないため、
処理的には何も出来ないはずです。
その結果としてボタンをクリックする処理も正しく動作しません。
「一括処理」とは「何」を「どのように」処理を施したいのかを
明確にしてください。
つまりFNに入れたファイル名を何に使いたいのか?
"出力設定"というウィンドウに対して何をしたいのか?
を詳しく書いてください。
241:名無しさん@お腹いっぱい。
09/06/01 00:54:42 SQU0dFf0P
>>239
FNはファイル名なので
たとえばタイトルバーに「ac - 123a」とあるとすると
GETID("ac - " + FN)
とすればいいです。
エラーが出るなら、どの行でなんていうエラーが出るのか書いてくれないと分かりません。
とりあえず、あるかどうかも分からないウィンドウの処理を、無かった場合を考えてないので変な動作をするのは想像できます。
242:名無しさん@お腹いっぱい。
09/06/07 22:16:30 asRINGPU0
uwsc使い始めでよくわからないので教えてください。
while 1
Dim a = 1
一番右上の空白に文字列aaa+変数を書き込む
//作業1
//作業2
//作業3
a = a + 1
WEND
書き込む所はどうすればできるのでしょうか?
作業123は正常に動きます。
243:名無しさん@お腹いっぱい。
09/06/07 23:09:21 5b1bhkqi0
おい!ちょっとエスパー読んできてくれ!
244:名無しさん@お腹いっぱい。
09/06/07 23:14:28 OPjWq+620
一番右上の空白とは一行目の行末のこと?
SendStr
FPut
あたりじゃダメ?
245:名無しさん@お腹いっぱい。
09/06/07 23:17:53 gV79Fw+LP
どのようなアプリケーションの右上なのかな?
他人が状況を把握出来る説明だと回答もらえやすいよ
246:名無しさん@お腹いっぱい。
09/06/08 22:52:52 lT7YTxwk0
タスクマネージャのプロセス一覧に出ているリスト列を
タスクマネージャを開かずに取得する方法ってないですかね?
GETALLWIN的な扱いの簡単さが出来ると嬉しいのですけど…
247:名無しさん@お腹いっぱい。
09/06/09 10:03:09 OB3fzy750
リスト列ってのが何を指してるのかわかんないけど
API経由で取得するのが簡単だと思うよ
248:名無しさん@お腹いっぱい。
09/06/09 14:45:33 JmluGmGYP
>>246
Windows7のタスクマネージャで取ってみたけど
GetItem( ID, ITM_LSTVEW, 0 ) でリストが取れる。
あとはALL_ITEM_LIST[]から順に取り出していく。
配列使ってるからそこはてきとーに処理して
【ITM_LSTVEW】
アイテム数 = GetItem( ID, ITM_LSTVEW, j )
For k = 0 to アイテム数 - 1
SendSTR(メモ帳, (k+1) + ") " + ALL_ITEM_LIST[k] + "|<#TAB>", 1, false, false)
Next
出力結果
1) explorer.exe| 2) dwm.exe| 3) perfmon.exe| 4) Jane2ch.exe| 5) wmplayer.exe| 6) iexplore.exe| 7) iexplore.exe|
8) iexplore.exe| 9) sakura.exe| 10) csrss.exe| 11) wmprph.exe| 12) UWSC.exe| 13) taskmgr.exe| 14) taskhost.exe|
15) notepad.exe| 16) notepad.exe| 17) taskhost.exe| 18) p2proxy.exe| 19) vmware-tray.exe| 20) sakura.exe| 21) FlashUtil10b.exe|
22) prevhost.exe| 23) winlogon.exe| 24) SOUNDMAN.EXE| 25) rundll32.exe| 26) ipmsg.exe|
249:名無しさん@お腹いっぱい。
09/06/09 14:53:56 JmluGmGYP
そういえば ALL_ITEM_LIST って2次元配列だったりしないんだっけ?
これだとプロセスナンバーとかの数字が取れない。
250:名無しさん@お腹いっぱい。
09/06/09 16:29:45 XsDpdM150
>>248
できた。ありがとう。
…でも、タスクマネージャーを開いたりする動作がちょっとめんどくさい。
バックグラウンドで何も表示が変わらず取得するには>>247の通りAPIとかがいいのかなぁ…
APIとしてtoolhelp32があるらしいが、宣言様式がわからずに挫折。
探していったら、コマンドプロンプトで「tasklist」を打つと標準出力としてリストが帰ってくるみたい。
今回はこれを使ってみます。
…挫折しそうだったけど、なんとかなりそう。有難うございました。
251:名無しさん@お腹いっぱい。
09/06/09 17:38:09 JDTy0djO0
なるほどね(´・ω・)
252:名無しさん@お腹いっぱい。
09/06/09 17:47:30 98GC24TC0
>>250
tasklist /?
253:名無しさん@お腹いっぱい。
09/06/09 21:17:19 yZRaCbPW0
APIつかえば楽にできるものまで、なんで無理やりUWSC使おうとするのか・・・
254:名無しさん@お腹いっぱい。
09/06/09 21:34:50 OB3fzy750
ん?
uwscでAPI使えるが
255:名無しさん@お腹いっぱい。
09/06/09 23:11:29 XsDpdM150
>>253
APIを使った先がウィンドウ操作ならUWSCを使うのもありかと思う。
256:名無しさん@お腹いっぱい。
09/06/10 06:32:08 s0GnnaGy0
未だに2.8使ってるわ
257:名無しさん@お腹いっぱい。
09/06/12 19:46:08 cYfKVn6U0
指定ウインドウのタイトルバーをホットキーで
ON/OFFできるようになった
テラ便利だなこれ
258:名無しさん@お腹いっぱい。
09/06/12 23:17:03 LyI0bbxR0
あの、pro試用版の期間切れてまったく使えなくなったんですが、再度インストールしなおす感じで
使えるようになる方法はあるでしょうか?
それか課金すれば他のPCでも作ったEXEを起動させる事は可能でしょうか?
259:名無しさん@お腹いっぱい。
09/06/13 16:27:25 HHSbXdvr0
(1ライセンス:1人の使用者もしくは1台のコンピュータのどちらかといたします)
1人の使用者=別PC起動OK?
260:名無しさん@お腹いっぱい。
09/06/13 17:00:46 ypl3J9yE0
>>258
exe化されたものは単体で動く&ライセンスフリーで配布化なので
>課金すれば他のPCでも作ったEXEを起動させる事は可能でしょうか?
は問題ない。
>>259
要は多人数・多PC間で同一シリアルでの使用、以外であれば基本的にはOKということかと…
261:名無しさん@お腹いっぱい。
09/06/13 17:05:09 HHSbXdvr0
>>360
>>exe化されたものは単体で動く&ライセンスフリーで配布化なので
他のPCでフリー版proの期限が切れてるとexeも起動できないのです
262:名無しさん@お腹いっぱい。
09/06/13 17:13:58 HHSbXdvr0
とりあえず製作者さんに聞いてみます
263:名無しさん@お腹いっぱい。
09/06/13 17:30:51 ypl3J9yE0
>>261
それはあくまでも”試用”だからじゃない?
以前は試用時期はexe化不可だったので、その後、そのようなbombを加えたんだと思うよ。
264:名無しさん@お腹いっぱい。
09/06/13 17:36:03 MuifibEd0
>EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます
元のpro試用版とはEXE化した時点で切れて元のライセンスとは無関係になる意味だとしか読めない
(中級者以上は全員そう答えると思う)
詳細:
大原則「元のプログラムのライセンスが成果物に及ぶことはありえない、ただし成果物に元のプログラムの一部分を含む場合は除く。」
UWSCのEXE化の場合ただし書きに当てはまっちゃうから自動的に(何と書いてあろうが)拘束されるわけないとは言えないけど
最初の文に戻ってセーフ
265:名無しさん@お腹いっぱい。
09/06/13 20:05:44 bQw4ownc0
Pro試用版で作ったExeには、試用版の期限とともに使えなくなる制限が加えられているって話か?
あたりまえなんじゃないの?
266:名無しさん@お腹いっぱい。
09/06/13 21:25:07 1s3MThNz0
そうじゃないから話題にしてるんだろ…
267:名無しさん@お腹いっぱい。
09/06/13 21:43:14 okfHIytV0
どうしてこんなことに
268:名無しさん@お腹いっぱい。
09/06/18 01:47:18 7aUOItL20
MOUSEORG使わずに裏のソフトにキーボード送る方法しらない?
仮想デスクトップだと失敗した(windeskwide)
269:名無しさん@お腹いっぱい。
09/06/19 16:01:31 ZIX8IAzn0
vitualPCくらいしかないんじゃないか?
270:名無しさん@お腹いっぱい。
09/06/19 18:53:26 08TlUNPj0
3レス前までの話なんだけど
メモリースティックに正式版UWSCのEXEを入れて別PCでそのEXEを起動できるのですか?
271:名無しさん@お腹いっぱい。
09/06/19 19:46:29 pAkGm9U/0
いままでメモ帳でスクリプト書いてたが、ここで紹介のあったさくらエディタ試しに使ってみたら
すげー便利なんで驚いたよ。プログラムなんていままでやったことなくてUWSCが唯一のなんちゃって
なんだけど、スクリプト書くのに入力支援ってのがあるのを初めて知りまつた^^
ちらしの裏でごめんなさい。
272:名無しさん@お腹いっぱい。
09/06/20 22:01:42 EKtO2XvN0
Ifb PEEKCOLOR(100,100) = $0000FF then
KBD(VK_A,CLICK,100)
endif
これで100、100の色が赤のときAキー押しますよね・・?
X100~200 y100~200の範囲に赤があるとき
Aキーを押すにはどうしたらいいんでしょうか?
273:名無しさん@お腹いっぱい。
09/06/21 10:43:56 RhC3FDVM0
>>271
入力支援とはどのような?
274:名無しさん@お腹いっぱい。
09/06/21 12:13:01 DCfGr8OJ0
俺はかなり昔から金払ってEmEditor使ってる
html、perl、vbs、shとか全部これ
EmEditor以外でよく使うのはvi
275:名無しさん@お腹いっぱい。
09/06/21 12:46:41 5kj31fKJP
>>271
for文の2重ループ
FOR x=100 TO 200
FOR y=100 to 200
Ifb PEEKCOLOR(100,100) = $0000FF then
KBD(VK_A,CLICK,100)
BREAK 2
endif
NEXT
NEXT
色が完全に固定ならチェック対象の1ピクセルの画像を用意してCHKIMGとか
どちらにしても負荷は高い
276:名無しさん@お腹いっぱい。
09/06/21 13:05:02 /nl1DTl50
>>273
"Get"とキーボードで入れると、"ゲッツ!"とダンディの声が再生され、
スクリプトの入力がはかどる機能だ。いまのところ、さくらエディタにしかない。
277:名無しさん@お腹いっぱい。
09/06/21 13:18:32 G+IyuUm70
メモリースティックにUWSCのEXEを入れて別PCでそのEXEを起動できるのですか?
278:名無しさん@お腹いっぱい。
09/06/21 17:28:50 iA+d4F2z0
こんな入力支援じゃダメ?(´・ω・`)
ID = GetID("メモ帳","Notepad", 0.02)
HashTbl a
a[30] = "ChgMoj()"
a[31] = "CreateOLEObj()"
a[70] = "GetActiveOLEObj()"
a[32] = "CtrlWin()"
a[60] = "Fukidasi()"
Thread Focus()
b = SlctBox( SLCT_LST, 0, "どれか選んでね", a[30], a[31], a[32], a[32], a[60])
If b < 1 then Exit
c = LOGN(2, b)
Ifb 0 < ID
SendStr( ID, a[c, HASH_VAL])
Else
SendStr( Exec("Notepad"), a[c, HASH_VAL])
EndIf
Procedure Focus()
SCKey( GetID( "", "TFSectBox.UnicodeClass", 0.02), VK_Down)
FEnd
279:名無しさん@お腹いっぱい。
09/06/21 17:34:27 G+IyuUm70
ライセンス取ってる人本当にいるんですか?
280:名無しさん@お腹いっぱい。
09/06/22 14:40:20 VkD3AiIxP
>>279
さー
いるんじゃないの?
でも、2ちゃんねる自体人が減っちゃったし、ヘビーユーザー以外は大規模規制で書き込めないし。
281:名無しさん@お腹いっぱい。
09/06/24 03:29:36 fQEr78db0
ウィンドウタイトルの無いウィンドウ(ツール)を操作したいのですがどうしたらいいでしょうか。
具体的にはURLリンク(novolization.hp.infoseek.co.jp) のMovieOperatorを
操作したいんですが。
プロセスから絞り込み出来るAHKに色目を使ったりしたんですが、日本語関係が扱いにくすぎるので戻ってきました…
UWSCでも同じようなことが出来たらと思いまして。
282:名無しさん@お腹いっぱい。
09/06/24 11:28:57 bogFoJon0
>>281
全部のウィンドウを探索して
特定の文字列を、特定の場所に持つ(title, static, edit…等々)ものを検索しても良いんじゃないか。
283:名無しさん@お腹いっぱい。
09/06/24 15:13:14 PNf2g6ai0
メモリースティックにUWSCのEXEを入れて別PCでそのEXEを起動できますか?
284:名無しさん@お腹いっぱい。
09/06/24 18:06:45 /v3ozSjk0
動くよ
285:名無しさん@お腹いっぱい。
09/06/25 14:08:56 u8YpvIpq0
>>281
クラス名指定では絞り込めないのか?
286:名無しさん@お腹いっぱい。
09/06/25 16:03:16 jI+hlXDc0
クラス名は #32770 でよくあるダイアログのそれです。
UWSCから起動してexecの戻り値を取るとか、アクティブウィンドウを指定するとか、
ウィンドウ総当りとかじゃないもっとストレートな指定法って無いもんですかね?
AHKではプロセスからからウィンドウ指定できるんですね。
何年もUWSCだけ使ってましたがこれを機にAHKも勉強中。
スタティックのテキスト変更できたりと色々便利。
UWSCでもAPI使えば出来るんだろうけど、なかなか敷居が高いです…
287:名無しさん@お腹いっぱい。
09/06/25 17:58:21 u8YpvIpq0
>>286
なる。 駄目もとで公式に要望出しておいたら?
AHKは確かに便利なんだけど、あの書式がどうしても馴染めない…
288:名無しさん@お腹いっぱい。
09/06/25 18:19:24 wYqTelZv0
総当りっつても、関数にしちゃえば大したことないよ。
クラス名と、Statusでプロセス名と、ウィンドウ内部のいくつかのテキストが合致すりゃいいだけの話。
UWSCのヘルプ見れば簡単に取得できる。
API使う技量があれば大したことないと思うんだが・・・
AHKは慣れるまで大変だけど、UWSCより反応や処理が早いような気がするわ。
キーカスタマイズできるために処理が早いのか、exeが200キロバイトくらいしかないからなのかわからんが。
でも楽なのはUWSCだね。
289:名無しさん@お腹いっぱい。
09/06/26 00:30:23 kYZKAKEF0
PRO版をレジストした。
くそう…もっとはやくレジストしておけばよかった…
EXE化の恩恵がソース隠蔽の他にもあった。
補助ソフトを使わずに、複数ファイルがドロップ受付可能になるのは便利だ。
290:名無しさん@お腹いっぱい。
09/06/26 02:05:41 jxeiONc00
>>288
問題のツールはリストボックスの選択でモード変更するんですが
モード変更によって内部コントロールの数もテキストもごそっと変わるんですね。
きめうちで指定できる全モード共通のテキストが無い。
まあそれもモード毎に分ければいい話ですが、使わないモードの
ぶんまでいちいち記述するのは面倒くさいですよ。
291:名無しさん@お腹いっぱい。
09/06/26 03:10:05 rn5hv3nk0
//前作ってた奴から関数にしてみた。テキストのチェックはないけど
option explicit
//クラス名とExe名からIDを取得する
dim sNameClass = "#32770"
dim sNameExe = "movieoperator.exe"
dim ret = GetID_class_Exename(sNameClass,sNameExe)
msgbox(ret)
function GetID_class_Exename(sNameClass,sNameExe)
GETALLWIN()
dim iii
result = ""
for iii=resize(ALL_WIN_ID) to 0 step -1
ifb status(iii,ST_Class) = sNameClass and copy(status(iii,ST_Path),length(status(iii,ST_Path))-length(sNameExe)+1,length(sNameExe)) = sNameExe then
result = iii
exit
endif
next
FEnd
292:名無しさん@お腹いっぱい。
09/06/26 09:21:02 jxeiONc00
>>291
なるほど、ST_PATH使うんですね。
こっちのほうがだいぶスマートです。
ウィンドウ総当りでも内部コントロールのテキスト使うことばかり頭にありました。
293:名無しさん@お腹いっぱい。
09/06/27 21:21:48 I4Xj1M1U0
>>289
他PCでもレジストできますか?
294:名無しさん@お腹いっぱい。
09/06/28 00:32:11 KYHTB2rv0
税込む価格
10本未満 : 1本 6,720円
10本~29本: 1本 6,090円
30本~49本: 1本 5,460円
50本以上~: 1本 4,830円
例:12本の場合は 12*6090にて、お振込み頂く金額は 73,080円になります。
これについて一言
295:名無しさん@お腹いっぱい。
09/06/29 12:12:35 26BV9Jn80
画面全体、もしくは指定座標が #FFFFFF→#FFFF00に変化したら音を鳴らして、
#FFFF00になっている間はループ。#FFFF00→#FFFFFFに変化したら音を止めて、
監視状態に戻る・・・というものを作りたいのですが、スキルがない為にうまく組めません。
用途としてはアラート監視に使いたいと思っています。監視ソフトに音を鳴らす
機能がついていないので、UWSCでその機能を補完できればと考えています。
お力をお貸し願えないでしょうか。
(取りあえず自分でも組んでみたのですが、改行多すぎで投稿できませんでした)
296:名無しさん@お腹いっぱい。
09/06/29 15:09:48 aEsNyjSz0
WHILE TRUE
IF PEEKCOLOR(x, y) = $00FFFF THEN SOUND()
SLEEP(0.1)
WEND
どこをどうしたら改行多すぎる長いマクロかけるんだ…
297:名無しさん@お腹いっぱい。
09/06/29 16:04:22 NmP87/3+0
画面全体が対象だとちょっとだけ長くなるんじゃね
298:名無しさん@お腹いっぱい。
09/06/29 19:25:33 A0Ms4Bp/P
>>295
そういうのはスクリプトじゃないちゃんとしたプログラムで書くべき。
UWSCではⅠ画面のスキャンにも時間がかかりすぎる。
299:名無しさん@お腹いっぱい。
09/06/29 22:10:30 eTj2KOuA0
詰めるとスクリプトでは…という話かもしれないが
別のところを詰めると、スクリプトでもいけると思う。
まぁ、それには295が自分のやりたいことと、
取り巻く環境を正しく理解すれば…の話だったり。
300:名無しさん@お腹いっぱい。
09/06/29 22:55:12 n5qEjFKA0
>>293
出来るよ。何台でも。ライセンス条項違反だけどね。
>1ライセンス:1人の使用者もしくは1台のコンピュータのどちらかといたします
301:名無しさん@お腹いっぱい。
09/06/29 23:30:15 JbdH8yRJ0
>>298
時間っていっても大したことねえと思うが。
素人がさっと試せるのがUWSCのいいとこなわけだし。
それで駄目ならプロにたのめばいいわけだし。
302:名無しさん@お腹いっぱい。
09/07/01 19:45:32 Axm6U3Er0
すいません教えてください
指定範囲内の画像を判別し別の座標をクリックする下記のスクリプトを使っています
while true
ifb CHKIMG("画像1.BMP",指定範囲A) then
BTN(LEFT,CLICK座標)
break
endif
wend
見つかるまでループし見つかったらクリックして停止するのですが
チェックする指定範囲を指定範囲AだけでなくB、Cと増やし、
どれかが見つかればクリックして停止させるためにはどうすればよいでしょうか?
303:名無しさん@お腹いっぱい。
09/07/01 21:04:18 tiNZ/SLY0
POU!!!!
304:名無しさん@お腹いっぱい。
09/07/01 21:12:51 zKC91gH10
オンラインゲームとかでこのツールで自動化してる人多いんだろうか
305:名無しさん@お腹いっぱい。
09/07/01 21:22:23 15F2lE6M0
大抵使えないようになってなかったっけ?
306:名無しさん@お腹いっぱい。
09/07/01 23:18:23 9pXJwBtQP
前ここで紹介したやつとかはできるよ。
307:名無しさん@お腹いっぱい。
09/07/01 23:49:42 ygopY0dKP
>>302
ifb CHKIMG("画像1.BMP",指定範囲A) or CHKIMG("画像1.BMP",指定範囲B) then
みたいな方法はダメなの?
308:名無しさん@お腹いっぱい。
09/07/02 12:13:35 OEoizP2MO
uwsc間でセマフォを実現したいのですが
dllを作って制御するよりも簡単な方法はないでしょうか?
309:名無しさん@お腹いっぱい。
09/07/02 14:40:24 sDXIrU6E0
>>308
スレッドで排他的な処理をするときに、グローバル変数でやるけどな。
310:名無しさん@お腹いっぱい。
09/07/02 15:23:40 q3lfYl560
テキストファイル作るとかいくらでも原始的な方法あるだろ…。
小手先にこだわる人はそういうの嫌う傾向あるけどさ。
311:名無しさん@お腹いっぱい。
09/07/03 08:57:54 XVVCydyZP
>>300
それ、使用者が1人に限定されてるなら、複数台のPCにインストール可ってことだろ。
複数台のPCにインストール = ライセンス違反
にはならないっしょ。
312:名無しさん@お腹いっぱい。
09/07/06 18:41:41 YZMKaP1Xi
話の流れを切ってしまってすいません。
最近、UWSCを使い始めた者です。
以下のようなスクリプトを作成したいと思っています。
グラフを表示するアプリケーションで、折れ線グラフに座標がプロットされています。
プロットにマウスカーソルを合わせるとカーソルが手アイコンになって、アイコンの横に数値等の情報が表示されます。
グラフにプロットされている数値情報をUWSCのスクリプトで取得したいのですが、実現可能でしょうか?
313:名無しさん@お腹いっぱい。
09/07/06 20:06:01 TPkvWju00
>>312
セーブ機能でもあれば(できればRAMDISKにするのが精神的にはいい)
ファイルに落とさせてそこからデータ拾う方向でスクリプト書くのが結局速度的に楽だと思う
314:名無しさん@お腹いっぱい。
09/07/06 22:06:49 lo0IC7Wz0
多分株とかFXのチャート情報を取りたいんだよな?
具体的なソフト名出した方が早くね?
315:名無しさん@お腹いっぱい。
09/07/07 01:17:50 jscXNfpn0
javascriptを使ったwebサイトのソース内で、
var foo = "hoge"
となっているときに、
"hoge"を取得するスマートな方法はありますか?
316:名無しさん@お腹いっぱい。
09/07/07 04:41:48 P7bnsZv00
UWSC Ver4.5b umiumi
TRY-EXCEPTにて間違った処理をするパターンがあるのを修正
別プロセスで実行時に引数の扱いを間違うパターンがあるのを修正
SLCTBOX関数にて配列を個別に指定された時に正しく処理できなかったのを修正
本体実行中でもスケジュールの指定Window(別プロセス実行)が実行できるように修正
COPY関数にて第三引数(長さ)が省略された場合は、残り全部とするようにした
最大スケジュール数をINIの[SCHEDULE],MaxNumberで指定できるようにした
GETSTR関数にて取得文字数が最大4MBまでだったのを制限を無くした
POSB関数にて逆サーチでの順番指定が出来なかったのを修正
DLL内でのエラーをTry-Exceptでトラップできるようにした
IEのINPUT_FILEタグに対し対策をした
Pro版:
RecIE:Viataにてポップアップダイアログのボタンが記録できなかったのを修正
UDebug:検索ボタンにて文字選択がされている場合は、直にその文字を検索できるようにした
317:名無しさん@お腹いっぱい。
09/07/09 03:18:09 K+cvyH5a0
UWSCで持続的に多数のウィンドウへキー命令することは可能でしょうか?
318:名無しさん@お腹いっぱい。
09/07/09 10:10:19 trO9D85B0
可能です
319:名無しさん@お腹いっぱい。
09/07/09 15:48:14 K+cvyH5a0
ありがとうございます
320:名無しさん@お腹いっぱい。
09/07/09 16:25:26 CvPCj7sU0
>DLL内でのエラーをTry-Exceptでトラップできるようにした
地味に大きくない?
DLL内で0除算させて試してみようかな
321:名無しさん@お腹いっぱい。
09/07/10 00:32:47 lbj2n/b50
これ便利ね
322:名無しさん@お腹いっぱい。
09/07/10 02:57:08 7POBxinT0
便利だね
手作業でチマチマやってたのを全部自動化した
API使えるから何でも出来るんだよね
昔VC++で勉強したことがこんなところで役に立つとは思わなかったな
323:名無しさん@お腹いっぱい。
09/07/10 13:24:06 bvHtNp3y0
IE8を使っている人に聞きたいのですが、IE.navigateでページを開いたとき
アドレスバーにフォーカスが移って、WEBページをTABや矢印キーで操作しようとしても
失敗してしまうということはありますか?
現状、いけるときと失敗するときとがある感じでよく分からない状態なんですが
IE.navigateでページを開いたあと、CTRL+F6(次のフレームに移動)でWEBページ表示領域に
フォーカスを移す処理を入れたほうがいいんでしょうか?
324:名無しさん@お腹いっぱい。
09/07/15 08:40:40 dHC6/iUm0
キーボードの数字をランダムに押すというのに苦戦しています。
0~9の数字を8回ランダムに押すというものです。
KBD(VK_数字)といった感じでできるのですが、この数字のところ
をrandomに変更することができません。
そもそもキー操作の場合それぞれのキーが割り当てられてるので
この場合はrandomにはできないのでしょうか?
数字部分に変数を当ててrandom関数でやってみましたが
駄目でした。
325:名無しさん@お腹いっぱい。
09/07/15 09:35:49 aCfMEibV0
まさかとは思うが、KBD(VK_Random(9))とか書いてるのか?
Select Random(9)
Case 0
KBD(VK_0)
とかだろ…
326:名無しさん@お腹いっぱい。
09/07/15 10:32:42 RKrpYa/b0
KBD(Random(10)+$30)
でおk
327:名無しさん@お腹いっぱい。
09/07/15 13:08:42 RKrpYa/b0
KBD(VK_0 + Random(10))
か
328:名無しさん@お腹いっぱい。
09/07/15 21:01:09 57HO71P40
おまじない的な感覚で>>326or>>327でよいかと
ほとんど自動変換してくれるんで意識する必要はないけど
まれに変数の型が表に顔出してくる時あるんだよね
329:名無しさん@お腹いっぱい。
09/07/15 22:49:40 g+Ls3JNv0
①エクセル起動→②エクセルマクロ実行→③実行終了したらフラグを受け取り別のソフト起動
の操作はどのように書けばいいですか?
330:名無しさん@お腹いっぱい。
09/07/16 23:58:32 +davSeuX0
え?まさかの丸投げ?
331:名無しさん@お腹いっぱい。
09/07/17 08:18:26 bbfZIYIo0
>>329
がんばって書く
332:329
09/07/18 00:22:53 WM9dcx8z0
>>331
有難う御座います。がんばって書きます
333:名無しさん@お腹いっぱい。
09/07/18 02:22:29 1ZexqNwY0
例えばaを押したら1と入力されるようにすることはできますか?
要は普段使わないキーボードの右側の方(;:]./\など)をテンキー化したいのです。
さらに欲を言うならば、caps lockがかかった状態、もしくはshitやctrlを押した状態の時だけ、そういうことが発動するようにしたいのですが、可能でしょうか?
334:名無しさん@お腹いっぱい。
09/07/18 02:24:17 mUArMsKp0
可能です
335:名無しさん@お腹いっぱい。
09/07/18 09:22:55 ItSUs/Al0
>>333
オレならUSBテンキー買って来る
336:名無しさん@お腹いっぱい。
09/07/18 12:33:46 CE0jT6p40
>>335
個人ならそれでいいかもしれんが、企業だったら稟議書からなにから通すだけで時間かかったりするぞ
337:名無しさん@お腹いっぱい。
09/07/18 15:24:17 8JxgQ2fy0
sckey をバックグランドで実行する方法はありますか?
CLKITEMだと出来たのですが、sckeyが分かりません。
338:名無しさん@お腹いっぱい。
09/07/18 17:12:38 91EZdOVQ0
それは大変だ。
339:名無しさん@お腹いっぱい。
09/07/18 20:15:17 aYjbn5h30
>>333
そういうのはautohotkeyで書いたほうが楽
340:名無しさん@お腹いっぱい。
09/07/19 00:13:28 3BRuI4PH0
>>333
KeySwap for XPとかで済むんじゃねーの?
341:名無しさん@お腹いっぱい。
09/07/19 00:19:50 Oz/DPzGt0
お前らマルチに親切にレスしてるなんてヒマなんだな
342:名無しさん@お腹いっぱい。
09/07/20 02:15:50 nsn5ChNU0
>>334>>338
カス死ね
343:名無しさん@お腹いっぱい。
09/07/20 16:08:02 JDSGXSFx0
>>333
まずはC++でグローバルフックのDLLを作ります
344:333
09/07/21 18:30:21 WYzZFjZo0
あれから色々苦戦中、0~9までuwsファイル作っておいてそれをcallで呼び出せばいいんじゃないかと思ったり。
ちなみに、プログラムの知識は皆無だよ
以下返信
>>334
そうか、頑張るよ
>>335
なら、numlockで良くね?
>>336
稟議書 ←なんて読むの?
>>339
ググった。私の脳のスペックでは意味不
>>340
ベクターで色々みたさ、でも自分で作りたいじゃないか~
>>341
マルチ スマソ(´・ω・`)
>>342
まぁまぁ
>>342
帰ったらググります
345:名無しさん@お腹いっぱい。
09/07/21 18:56:29 h60nc1rT0
>>344
公式掲示板でほとんど作ってもらったんだから
こっちじゃなくあっちにレスしてやれよw
346:名無しさん@お腹いっぱい。
09/07/23 21:59:22 ANKsVFLo0
ご存知の方教えてください。
Firefoxで表示、文字サイズ拡大の操作を記録したのですが、
再生してみても文字サイズが拡大されません。
多分スクリプトを少し書き直さないといけないと思うのですが
どういうふうにすればよいのでしょうか?
347:名無しさん@お腹いっぱい。
09/07/23 22:06:49 wpDpzEkE0
>>346
あなたの書いた(記録した?)スクリプト自体を
見せてもらわねば提言のしようがありません。
348:名無しさん@お腹いっぱい。
09/07/24 07:50:51 mKJXAKWL0
>>347
MMVというのがたくさんありますが、(多分Mouse Moveの略でしょうか?)
それを抜かすと以下のようになります。
ACW(GETID("UWSC - Mozilla Firefox","MozillaUIWindowClass"),-4,-4,1032,746,0)
BTN(LEFT,DOWN,149,31,63)
BTN(LEFT,UP,148,31,10)
BTN(LEFT,DOWN,333,167,16)
BTN(LEFT,UP,333,167,47)
どのようにすればよいのでしょうか?
349:名無しさん@お腹いっぱい。
09/07/24 08:17:19 1UbdP7zu0
>>346
ブラウザで文字サイズを変えるのは ctrlキーを押しながらマウスのホイールを回すのが簡単
350:名無しさん@お腹いっぱい。
09/07/24 09:00:42 /eJPvueU0
>>348
記録モードが、低レベル記録、になってますね。
それは、マウスの位置から全てのウィンドウの位置まで
記録開始した状態と全てがまったく同じでないと動きません。
4.5以上のバージョンなら設定で、高レベル記録、がありますので
それをつかってみろ。出来上がるスクリプトの中に書いてあるClkItemとかはヘルプを読んでみろ。
351:名無しさん@お腹いっぱい。
09/07/24 10:23:23 xMXuk8+w0
途中で口調変更ワロス
352:名無しさん@お腹いっぱい。
09/07/24 12:32:34 gzTYP/+s0
育ちが知れるなw
353:名無しさん@お腹いっぱい。
09/07/24 13:18:06 L/9QcjXe0
わろすw
354:名無しさん@お腹いっぱい。
09/07/25 08:58:51 3fo2OaNk0
これは恥ずかしいw
355:名無しさん@お腹いっぱい。
09/07/25 17:16:36 /+q684D80
画像をグループ分けして画面内に画像が出た場合、どちらのグループに属するか認識し行動を分ける事は可能でしょうか?
グループ1(A,bmp B,bmp C,bmp)
グループ2(D.bmp E.bmp F.bmp)
グループ1が出た場合
BTN(LEFT,CLICK)
グループ2が出た場合
BTN(Right,CLICK)
という風なスクリプトを作りたいです
356:名無しさん@お腹いっぱい。
09/07/25 20:40:39 2ESVsmuX0
uwscのスクリプトを要望に応じて書いてくれるところとかないでしょうか?
簡単なものだったら10分ぐらいでできてしまうと思うのですが。
そういう簡単なものだったら1000円ぐらいで書いてくれるサービスあったらいいなとかw
楽天ビジネスとかって企業向けですよね。もっと気軽に個人向けにやってるところとかないのでしょうか。
357:名無しさん@お腹いっぱい。
09/07/25 22:27:50 EmgNWjoxP
簡単なバイトでも時給1000円はもらえる
たった1000円じゃ仕事ではなくボランティアレベル
あなたの望むサービスがなぜ存在しないか考えてみよう
358:名無しさん@お腹いっぱい。
09/07/26 00:15:47 hvI9wiQs0
>>355
ピクセル単位のマッチングが必要だね。
各グループの絵を、あらかじめ配列に展開しいておいて、ピクセル単位でマッチング。
すんごい重いと思うから、かどから順番にマッチングせずに例えば10ピクセル飛ばしとかで
マッチング、その横からの10ドット飛ばしという風にしてマッチングして行くようにすると良い。
もちろんマッチしなかった時点で処理を抜ける。
どれくらいの画像に対して処理をするか次第だけどリアルタイムで行けるかは
マシンパワー次第かも。
ただし表示箇所がランダムなのであれば難度は一気に上がるよ。
始点を探す処理が入るからね。
実質の全画面チェック。
ピクセルマッチング系に魔法のようなテクニックはないのでスクリプト系の処理速度が
それに向くかはちょっと微妙だと思うし。
359:名無しさん@お腹いっぱい。
09/07/26 01:07:26 RFSxx9OA0
uwscってボタン同時押しはできないんだっけ?
360:名無しさん@お腹いっぱい。
09/07/26 01:15:22 k8W8PP1U0
できるよ
361:名無しさん@お腹いっぱい。
09/07/26 01:27:05 SQTfml1C0
>>358
普通にCHKIMGじゃだめなのか?
362:名無しさん@お腹いっぱい。
09/07/26 02:02:16 hvI9wiQs0
>>361
ガチでダンプチェックするより事前に代表点で振るいかけたほうが早いんよ
363:名無しさん@お腹いっぱい。
09/07/26 02:38:43 wN6RQvAZ0
>>362
グループ化と言ってるあたり、そのレベルの質問ではなく
ifとか基礎文法の扱い方を知りたいないと思うんだが・・・
ちょっと論点がズレてる気がする
「どう高速化すべきか?」という質問されたのであればそれが正解かも知れませんけどね
364:名無しさん@お腹いっぱい。
09/07/26 11:41:09 DhQZJJUu0
>>363
速度が十二分に速いなら、
if chkimg("A.bmp") then (1グループ処理)
if chkimg("B.bmp") then (1グループ処理)
if chkimg("C.bmp") then (1グループ処理)
if chkimg("D.bmp") then (2グループ処理)
if chkimg("E.bmp") then (2グループ処理)
if chkimg("F.bmp") then (2グループ処理)
で良くなる。
これを実行してみてから、より速度が必要なら改善方法はそれなりにあるだろう。
365:名無しさん@お腹いっぱい。
09/07/26 13:41:19 ADTPJm3c0
355です。
あまり速度は必要ないのでif chkimgで総当りしてみます。
答えてくださった方々ありがとうございました
366:名無しさん@お腹いっぱい。
09/07/26 18:47:12 SQTfml1C0
>>362
peekcolorで候補絞って最後にchkimgする感じ?
そもそも全画面捜査やったことないし、素人なもんで、そういう方法について頓着したことなかったよ^^;
367:名無しさん@お腹いっぱい。
09/07/27 23:03:22 jAvJH5hi0
俺もやったことあるけど、でかい画像にchkimgかけるとたまらなく遅いんだよな。
368:名無しさん@お腹いっぱい。
09/07/28 01:28:51 GiUkEbYy0
355です。
800×600の画面の左上に110個の画像を総当りでチェックしていこうとおもうのですが・・・
やはり少し無謀でしょうか?
369:名無しさん@お腹いっぱい。
09/07/28 01:54:32 I9N45zJA0
800x600と800x600を110回チェックだとしたら無謀すぎる。
たとえC言語で組んでもリアルタイムは無理だw
370:名無しさん@お腹いっぱい。
09/07/28 02:35:11 GiUkEbYy0
URLリンク(pc.gban.jp)
言葉では説明しきれなかったので画像にしてみました
赤の部分をチェックします。
長々とすみません
371:名無しさん@お腹いっぱい。
09/07/28 08:51:02 Pp360QyAP
範囲が狭いなら100パターンチェックも十分可能だろうけど・・・
それだけの画像用意するのも大変じゃね?
画像の左側は数パターンしかないとかもっと分類できないものなの?
372:名無しさん@お腹いっぱい。
09/07/28 08:51:09 4rihFoYW0
>>370
>>364の内容で作ってみてからの話だぜ?
自分で何倍ぐらい早くしないとだめなのか、理解が及ばないとね。
また、高速化する場合には、アルゴリズム以外にも、そのものをよく知らないとだめ。
…何に対してどういう処理をして何を省くのか、はお前さんしか知らないしな。
つか、Cでも無理だという話があるし…無理なものは無理とあきらめるべき。
373:名無しさん@お腹いっぱい。
09/07/28 09:41:19 oKzw8Bf70
おれならその範囲をドット単位で記録するマクロをまずつくって必要なパターンと判断パターンとの
相関を割り出す。
374:名無しさん@お腹いっぱい。
09/07/28 09:59:02 Gy+7hY450
まずは試してみるのが一番早い。
そのためのUWSCです。
375:名無しさん@お腹いっぱい。
09/07/28 15:51:30 bh7Aq+ks0
クリックについてちょっと質問です。
今現在目的の動作はできていますが、もっと簡略化
できるのではと思っています。
BTN(LEFT,CLICK,303,359,0)
BTN(LEFT,CLICK,335,359,0)
BTN(LEFT,CLICK,367,359,0)
このような感じでクリックするのが徐々に横にずれて
いくというものなのですが、x軸の移動幅が同じと
いうことで、簡略はできませんか?
ランダムでは、本家のサイトで見つけましたが、
ランダムだと関係ないところまでクリックしてしまうので。
376:名無しさん@お腹いっぱい。
09/07/28 16:45:22 4rihFoYW0
>>375
おめーは、ヘルプの制御文の項目を100回読み直せ。
他の項目も全部読んでから出直して来いや。
377:名無しさん@お腹いっぱい。
09/07/28 18:09:57 LfvbDBC/i
>>375
X軸を変数にすれば、クリックコマンドは1つにできるぞ。何でランダムと言い出すのか? 意味がわからん。
3コマンドだったら、今でも良いと思うが。
378:名無しさん@お腹いっぱい。
09/07/28 18:46:42 bh7Aq+ks0
変数以後がわからないんです。
32ずつ増えていくというのが。
379:名無しさん@お腹いっぱい。
09/07/28 19:06:49 Eqbq+GDA0
クリックするたびに変数に32足すだけのことだよ
380:名無しさん@お腹いっぱい。
09/07/28 19:14:49 aCDcIvCB0
3行でやることにこだわってんのかも
381:名無しさん@お腹いっぱい。
09/07/28 19:36:40 llG+e4bu0
かわいそうなので
for i = なんちゃら to なんちゃら step 32
btn(なんちゃらかんちゃら)
next
または
i = なんちゃら
repeat
btn(なんちゃらかんちゃら)
i = i + 32
until i < なんちゃら