[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 08/07 11:21 / Filesize : 36 KB / Number-of Response : 116
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

自動化ツールUWSC使いよ集まれ12



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/07/12(土) 19:52:22.18 ID:syCLE48Q0]
前:名無しさん@お腹いっぱい。[] 投稿日:2014/01/09(木) 13:16:00.50 ID:hFz7Kd3R0 [1/3]
Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html

●UWSC 掲示板(※作成依頼掲示版ではありません)
 質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
 上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi
ttp://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=past

●UWSC - Wikipedia
ttp://ja.wikipedia.org/wiki/UWSC

●使い方・基礎解説学習サイト
ttp://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
ttp://www.confrage.com/uwsc/
ttp://necro.jp/dev/uwsc/
ttp://park14.wakwak.com/~simizu/uwsc/fruwsc.html
ttp://canal22.org/
ttp://big.tm.land.to/handbook/uwsc.htm
ttp://www.game-rev.com/review/gameut/uwsc.html

●スクリプトテンプレサイト
ttp://izagne.com/uwsc/
ttp://scripts.web.fc2.com/
ttp://www.nagomi-jp.net/~liners/
ttp://nem.symphonic-net.com/uwsct/0610uwsct.html
ttp://siromasa.digi2.jp/uwsc/
ttp://iriyak.adam.ne.jp/uwsc.html

64 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/01(金) 19:34:49.87 ID:cw9PH6wx0]
>>63
音量の値を返す関数かなんかあんのかなって調べてたんだが
音量ミキサー自体を画像判定か・・・試してみるかな
その発想が出てくるところがすごい

65 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/01(金) 20:10:36.66 ID:sgRmVnbD0]
>>64
どうしても要素掴めない時の最終手段がCHKIMGなのは前から定番
極論だがCHKIMGアリなら人間がやる動作は全て自動化可能

人間としての考えが必要な動作、例えばパズルゲームとか画像認証とかもな。
(別途、複雑なアルゴリズム組み込む必要があるがあくまで極論の話)

ていうか大体はAPIか別のツールをUWSCで動かせば楽なケース多いぞ
俺はAPIは知らんが、vector辺りで音楽ソフト漁れば
音量でかければ何かしらサイン出せるようなソフトあるんじゃね?
それをUWSCで判定するのが安定するかと思う

66 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 02:15:39.68 ID:J+3s+h/50]
IE.Navigate で COM ERROR: Exception occurred が出る原因と対処法、アドバイス貰えないでしょうか?

下記のコードで、3つ目の IE.Navigate で毎回エラーが出てしまいます。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("shizu.0000.jp/rounge/index2.html") //1
Sleep(2)
IE.Navigate("shizu.0000.jp/sakujyo/index2.html") //2
Sleep(2)
IE.Navigate("shizu.0000.jp/pcqa/index2.html") //3
Sleep(2)
IE.Navigate("shizu.0000.jp/ad/index2.html") //4
Sleep(2)
IE.Navigate("shizu.0000.jp/flyer/index2.html") //5
Sleep(2)

表示するURLの順序を変えても、やはり3番目でエラーになります。
UWSC掲示板では情報が得られませんでした。

Win7 Home
IE11
UWSC 4.8c

67 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 02:29:42.47 ID:KglVg/uo0]
うちではエラーは出ないなぁ
uwscを最新版にしたらどう?
COMエラーを無視して実行しても問題なさそうだからエラーは無視するとか

68 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 08:02:51.18 ID:buVZD99L0]
>>64 本気か
レベルメーターなら分かるんだが・・・まあいっか

69 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 08:21:08.45 ID:EMpklq/n0]
>>65
現実的には、画像をOCRに通して文字列判定させたくても、都合のいいOCRが安価に入手できない。
また縮小拡大されたり3Dなどで類似画像判定させようとすると、OpenCV+一般言語のほうがいいということになる。
もしUWSCから極めて容易に、
プロセスメモリからユニコード文字列抜き出したり、パケットからスニッフできたりするライブラリがあれば、
人間以上のことが出来ちゃうんだけどなぁ

70 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 13:35:13.96 ID:HI77Qwqc0]
// できた!こんなところでOK?

while 1
 if peekcolor(レベルメーターででかい時のx,レベルメーターででかい時のy)=レベルメーターの色 then msgbox("でかい音")
 sleep(0.1)
wend

71 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 18:40:27.92 ID:l/ljZJuP0]
>>67
最新版5.0.2.0にしてみたけど、結果は同じでした。

エラーを無視を試してみます。ありがとうございました。

COM_ERR_IGN
  // 何等かのCOM処理
COM_ERR_RET

72 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 18:51:25.93 ID:5O9VcL/w0]
>>71
なんでsleep使ってるのか知らないけど
sleep30くらいにしてもおきるの?



73 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/02(土) 20:44:45.62 ID:WM1a4UDh0]
>>72
別のスクリプトで IE.Navigate のエラーが発生したので、
これはあくまで原因を探るためのテストコードなのです。

Sleepはたとえば120秒にしてもダメでした。

あとエラー無視(COM_ERR_IGN と COM_ERR_RET)を使ってみましたが、 IE.Navigate が機能しないことには変わりないのでNGでした。

仕方ないので
IE.Navigate を実行する部分ごとに別のスクリプトにして、タスクスケジューラでuwscを順次起動することにしました。
(uwscのスケジュール機能も動作がおかしいので)

ありがとうございました。

74 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 00:16:57.12 ID:Kb0PwfYK0]
これが.NETの総合開発環境なら普通にエラーコード確認できるだろうしデバッグも様々なアプローチが出来るのにねー(棒)

75 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 00:29:25.17 ID:df3QRqvg0]
busywait入れてみたらどう?

76 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 01:39:01.99 ID:BlUvp7BS0]
IE11が原因だな
10以下なら動きそう

77 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 02:21:05.46 ID:JxcSZXyH0]
IE11でもエラーは起きない
本人以外で再現できる人いるの?

78 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 07:59:52.72 ID:GZ+WuIZ70]
エラーは起きないけれどWin7 IE11で3以後は表示されない
IEの外部操作は.NETでしかやったこと無いけれど同じような経験あるよ
その時はデバッグの結果

1回目は初期化されたIEだから問題ない
2回目は変数IEが表示中のIEなのでナビゲート後のページが表示される
但し内部的にはナビゲートすると変数IEと表示中のIEは同じオブジェクトじゃなくなるので
3回目以後は表示されない

って解釈してナビゲート後のIEを SHDocVw.ShellWindows から探す関数を作って対応した

79 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 08:11:42.83 ID:GZ+WuIZ70]
自分のケースの場合は
自動表示したページから次のURLを取得して順次ナビする必要があったけど

>>66の様なケースの場合は
固定URLの巡回なら毎回IEをCreateOLEObjして対応してもいい気がする

80 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 08:46:05.25 ID:BlUvp7BS0]
>>79
なるほどなぁ
それなら毎回GetActiveOleObjするのでもいいのかな
表示中のページも利用できそうだけど

81 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 17:53:01.87 ID:ygrmWk1e0]
下記のコードでポップアップのOKが押せない原因を調べているのですが、どうしても分かりません。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("https://ctu.fletsnet.com/")
BusyWait(ie)
IESetData(IE, True, "btnLogin", "ログイン")
BusyWait(ie)
IESetData(IE, True, "CONNECT_OFF_CLICKRUN_C1025", "切断")
BusyWait(ie)
IESetData(IE, True, "CONNECT_OFF_CLICKRUN_C1025", "接続", 1)
BusyWait(ie)
IELink(IE,"ログアウト")

ID = getid("Message from webpage","#32770",-1)
ClkItem(ID,"OK") // ←ポップアップのOKが押せない!

BusyWait(ie)
IE.Quit
ExitExit

ポップアップを手動で開いてから、下記コードだけを動かす時は正しくクリック出来ます。
ID = getid("Message from webpage","#32770",-1)
ClkItem(ID,"OK")

どうして連続処理の中では動作しないのでしょうか?

82 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 18:09:32.78 ID:df3QRqvg0]
ポップアップが出る前にID取得してんじゃねーの



83 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 19:02:52.87 ID:mE9cDTXm0]
管理者権限のUWSCスクリプトで起動したソフトがすべて管理者権限で起動されてしまうのは防げないものでしょうか?

84 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 19:03:26.55 ID:f5gfXNnl0]
自動操作では操作の成否を戻り値で受け取って一定回数再トライするのは定石よ

85 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 19:05:07.65 ID:vQ3Noa3Z0]
>>82 >>84
出来ました! ありがとうございます!!

thread CtuPopUpClick()
IELink(IE,"ログアウト")

////////////
Procedure CtuPopUpClick()
ID = getid("Message from webpage","#32770",-1)
ClkItem(ID,"OK")
Fend

86 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/03(日) 22:17:27.04 ID:f5gfXNnl0]
>>85
邪魔なダイアログ消すだけならそれでOKなんだろうが

sleep(1)
flgOkWasClicked=false
for loop=1 to 10
  did=getid("Message from webpage","#32770",1)
  if did = -1 then continue
  flgOkWasClicked=clkitem(did, "OK")
  if !flgOkWasClicked then continue
next

ifb flgOkWasClicked then ...

ということを言いたかったんだね〜
まぁ好きにやれや

87 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/04(月) 06:29:48.83 ID:+GhF8xfL0]
>>86修正

sleep(1)
flgOkWasClicked=false
for loop=1 to 10
  did=getid("Message from webpage","#32770",1)
  if did = -1 then continue
  flgOkWasClicked=clkitem(did, "OK")
  if flgOkWasClicked then break
next

ifb flgOkWasClicked then ...

88 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 16:38:42.74 ID:qR61SyTc0]
ランチメニューのショートカットキーは無効化出来ないのでしょうか?

キー割り当てに「なし」という選択肢がありません。

UWSC.INI を書き換えてもダメです。
LunchMenuHotKey= を削除すると デフォルトの Ctrl-W になってしまうし、
LunchMenuHotKey=999 とか存在しないキー番号を書くと起動時にいちいちエラーが出るし。

使わない機能のためにショートカットを割り当てなきゃならないのがツライ。

89 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 16:48:10.96 ID:qR61SyTc0]
訂正: ショートカットキー → ホットキー

90 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 16:54:29.69 ID:D5Dx1Flc0]
デフォだとブラウザのタブとか閉じるコマンドなんだよねそれ、無効ないししょうがないから使わないコマンドに設定してるよ

91 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 17:02:03.38 ID:M2OIrEtB0]
残念ながら有りません
UWSC本体を常駐状態にせずにスクリプトを逐次起動すれば
ショートカットを気にする必要はなくなりますよ

92 名前:名無しさん@お腹いっぱい。 [2014/08/05(火) 18:04:36.53 ID:0292bkw40]
While true
MSGBOX("testtest")
IF CHKIMG("tes1.bmp",0,1,1,806,625) THEN
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
sleep(3.0)
endif
IF CHKIMG("tes2.bmp",0,1,1,806,625) THEN
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
sleep(3.0)
endif
IF CHKIMG("tes3.bmp",0,1,1,806,625) THEN
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
sleep(3.0)
endif
IF CHKIMG("tes4.bmp",0,1,1,806,625) THEN
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
sleep(3.0)
endif
IF CHKIMG("tes5.bmp",0,1,1,806,625) THEN
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
sleep(3.0)
endif
sleep(0.5)
Wend

5この画像クリックして戦闘ループさせるようにしたつもりなんだけど
画像が見つかんねー
ペイントで切り取って保存してキャンバスのサイズ1×1に張り付けて
この書き方がまずいの?ちゃんと画像の探索できてんのかわからん



93 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 18:43:48.97 ID:6loQZGsf0]
その程度自分でデバッグできないとか。

94 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 18:47:39.23 ID:M2OIrEtB0]
適当にレスするとCHKIMGで得られる座標は左上なので
当然クリックする座標も其処になる
其処がクリック可能じゃなければBTN関数は当然失敗する

それ以前に比較用の画像が駄目な可能性もある
個別に判断していけ

95 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 19:00:12.01 ID:niZhumv+0]
>>92
・MOUSEORGを使う
・CHKIMGが失敗した場合にSLEEP挟まずに次のCHKIMGが実行されており
 CPU時間を独占し対象の描画を妨害する可能性がある
・CHKIMGは可能な限り IMG_MSK_BGR4 で判定すべし
・明らかにマッチする画像がマッチしないなら、そのときの画像を保存し、
 比較元と比較先の画像を800%以上に拡大して肉眼比較すべし
・画像があればクリックしTRUE、無かったり座標異常等でクリックできなければFALSEを返す
 例えばCLKIMG関数のようなものを定義すれば、コード量は半分に減りテストもしやすいだろう

96 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/05(火) 21:31:03.70 ID:oWkOQAEl0]
IE操作について質問です
CSSセレクタやXPathによるエレメント指定って
UWSC標準関数では実現できないと思うのですが
何かいい方法ありませんか?

97 名前:名無しさん@お腹いっぱい。 [2014/08/05(火) 22:12:08.03 ID:0292bkw40]
解決しました!
やっぱり画像が一致してなかったみたいです

>>93
sleep関数とmsgboxで一応デバッグしとる

98 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 12:29:26.17 ID:OYZwCMgl0]
CHKIMGを利用して指定画像があった場合、続いてその画像から右側の指定範囲をサーチさせるにはどうすればよいのでしょうか?
例を挙げると

画像A(画像左上角の座標がX=100、Y=100)があったら、次にそこから右の範囲(X1=110、Y1=100、X2=150、Y2=120)から指定画像を検索

要は画像Aの左上角座標からX1はX+10、Y1はY、X2はX+50、Y2はY+20の範囲を続いてサーチさせたいのです
こういったことが可能であればどのように書けば良いのでしょうか?
     

99 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 12:51:52.41 ID:J8shURq/0]
変数使えば良いんじゃね
X1 = G_IMG_X + 10
とかしても良いんだぜ

100 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 12:53:23.23 ID:OYZwCMgl0]
なるほど!ありがとうございます。

101 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 16:49:49.42 ID:Kd4DWNAs0]
PC用の無線リモコンにexe化したショートカット登録して押せるようにしたらすげー便利だった

1000円の品だったから4個しか設定出来ないがこれ捗りすぎてやばいw

102 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 18:59:45.71 ID:hsLYtabQ0]
PCに触っている状態であればランチャー動かしたほうが早いし
欲しいけど便利な用途が思いつかん



103 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 19:15:26.39 ID:J8shURq/0]
USBフットスイッチでもきっと便利に使えるだろうけれど
それはUSBフットスイッチの便利な使い方の一つでしかなくて
別にUWSCじゃなくてもいいし
EXE化しなくても引数付きでスクリプト起動してもいいよね
まぁ、嬉しい気持ちは伝わってくるよ
よかったな

104 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 19:39:18.22 ID:Kd4DWNAs0]
もともとfoobarに使えるリモコンって買ったんだけどuwscに利用したら思わず便利だったんで書いちゃったわ、確かに無理してそれ目当てに買う必要はないな

105 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/06(水) 23:55:48.76 ID:h3IAvmk30]
IEで、あるページを表示させて、そこに入力フォームや登録ボタンがあるかどうかを判定するにはどうしたら良いでしょうか?

mailフォームと登録ボタンがあれば入力して押す。
IESetData(IE, "テストデータ", "mail")
IESetData(IE, True, "", "登録する")

なければ別の処理、という形にしたいのです。

ググってみたけど、どういうメソッド(?)をどう組み合わせればよいか分かりません。
教えてもらえると助かります。

106 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 00:14:05.20 ID:6xUT57kM0]
POS関数

107 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 00:23:53.64 ID:Ft6QcBe/0]
IESetDataの戻り値はなんのためにあると思っているんだ?

108 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 00:34:06.84 ID:xY78+5+d0]
複数のUWSファイルを各ループ終了後に順番に開くようにしたいのですがわかりません。
現在はmain.uwsに、

while true

call A.uws
call B.uws
call C.uws

wend

と記述しており、A〜C全て画像認証で特定の画像が現れたらクリックをしてループを抜けるというものです。
Aが画像認証成功したらBへ、Bが画像認証成功したらCへ、Cが画像認証成功したらAへと行きたいのですが上手く行きません。
上記の記述だと、Aをクリアした後にBに行き、応答なしになります。

109 名前:名無しさん@お腹いっぱい。 [2014/08/07(木) 02:03:52.04 ID:fKkKz5EB0]
公式サイトの掲示板で質問すれば作者が回答してくれるのに、
何でこんな便所の落書きみたいな場所で質問するの?

110 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 02:33:23.60 ID:xY78+5+d0]
書き込んだ時503で見れなかったんだ・・・
公式掲示板で聞いてみる

111 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 02:54:02.97 ID:S3EPzyir0]
callなんてやめて関数で1ファイルにしちゃえよ

112 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 06:10:19.12 ID:E6P035jA0]
[MAIN.uws]

CALL SUB1.uws
CALL SUB2.uws

while true
  A()
  if !B() then exit
  if !C() then exit
wend

--
[SUB1.uws]

procedure A()
  …
fend

function B()
  …
  result=true
fend

--
[SUB2.uws]

procedure C()
  …
  result=true
fend



113 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 09:04:03.29 ID:kQCQRYI80]
IF CHKIMG("AA.bmp") or CHKIMG("BB.bmp") or CHKIMG("CC.bmp")
 BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
 その他処理
endif

いくつかの画像を検索して同じ処理をしたいんですけど、
上記のように書くと、AA.bmpを見つけても、CC.bmp検索までしてるようで、
AA.bmpのG_IMG_XとG_IMG_Yの値を保持してくれないみたいで上手くいきません。
IF文を分ける以外のテクニックがありましたら教えてください。

114 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 09:56:39.26 ID:S3EPzyir0]
>>113
先頭に OPTION SHORTCIRCUIT

115 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/08/07(木) 10:55:59.57 ID:xY78+5+d0]
>>108です
調べたところ、Bの画像認証が上手く行ってなかっただけでした。
お騒がせしました。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<36KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef