1read 100read
2011年10月1期ソフトウェア自動化ツールuwsc使いよ集まれ7 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
madVR Part1
foobar2000質問スレ Part21
Mozilla Thunderbird Part19
Windows Live Writer


自動化ツールuwsc使いよ集まれ7


1 :11/08/04 〜 最終レス :12/01/11

Windowsを自動化させるツールUWSC。
http://www.uwsc.info/
uwsc使いのみなさま、マターリ己のスクリプトを晒しましょ。

2 :
●質問したい方へ。
 「○○作れますか?」→ スクリプトを期待するのはお門違い。作れるか作れないか教えてくれる人はいるかも。
 「○○が作りたい」→ 自分作ればいいんじゃない?
 「○○作って下さい」→ 依頼スレじゃありません。
 過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
 自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
●スクリプトを晒す上での注意
 他人が読みやすいようにインデントを付けるように。解らない人はググレ。
 (タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし)
 言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、
 必要な部分を晒すようにする。
●他人の書いたスクリプトを安易に実行しないように。
 ハードディスクをフォーマットされたりしても、自己責任。
前スレ
自動化ツールuwsc使いよ集まれ6
http://hibari.2ch.net/test/read.cgi/software/1291347103/

3 :
3 名前:名無しさん@お腹いっぱい。:2010/12/03(金) 12:34:36 ID:W92a0hyv0
UWSCスクリプトの解説(初歩の初歩)
ttp://big.tm.land.to/handbook/uwsc.htm
UWSCで自動化 超速!! Windows マクロテクニック
ttp://izagne.com/uwsc/
解決マクロマン
ttp://blog.livedoor.jp/uwsc/archives/cat_50008789.html
SCRIPTS
ttp://scripts.web.fc2.com/
UWSCサンプル集
ttp://www.nagomi-jp.net/~liners/uwsc_sample_page.htm
UWSCの誘惑
ttp://nem.symphonic-net.com/uwsct/0610uwsct.html
UWSCの落し物部屋
ttp://siromasa.xxxxxxxx.jp/

4 :
カウンタを「1 To 10」という表記ではなく「01 To 10」という表記で行いたい(カウンタの文字をそのまま展開して使用したいためです)のですが、なにか簡単な方法はないでしょうか?、

5 :
10より小さかったら頭に0を付ける処理を挟めば良いんじゃない?

6 :
ちなみにUWSCでは数値型→文字列型は自動変換されるから
意識する必要はない(逆はVAL関数を使って変換する必要がある)

7 :
↓または↑をランダムに1〜6回キーを動作させるスプリクトってないでしょうか?

8 :
これを応用すればうまくいきそうなんですけどうまくできずorz
// キーボードからのキーを一文字づつずらす  #n45
for k = VK_A to VK_Y
SETHOTKEY(k, ,"fuckey")   // AからYまでキー登録
next
Sleep(100)
for k = VK_A to VK_Y
SETHOTKEY(k)        // 解除
next
// 一文字ずらす
Procedure fuckey()
  KBD(HOTKEY_VK+1)
Fend

9 :
random関数で乱数作って適当に分岐させればいいんじゃないの?

10 :
画像がariになったらクリックしてnasiになったらまたワンクリックだけしたいんのですが
下の方法だとariの画像の時に連打になってしまいます
どこが間違っているのか指摘お願いします
While True
Ifb ChkImg("ari.bmp",0)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,80)
Ifb ChkImg("nasi.bmp",0)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,80)
ELSE
continue
ENDIF
ENDIF
WEND

11 :
>>10
ほらインデントのないネストはメンテナンス性質

12 :
>>11
ほらインデントのないネストはメンテナンス性悪いだろ?(2chというかHTMLは基本タブ効かない)
途中でカキコしちゃった

13 :
行頭半角スペースと連続した半角スペースもな

14 :
JavaやFlashの動くブラウザゲームをしてると、たまになにかのひょうしに固まってしまう時があります。
そんな時に、何秒かフリーズしたら直前の動作をやり直す、というようなスクリプトはないでしょうか?

15 :
>>7 こんな感じ?
OPTION EXPLICIT
click_down_or_up()
PROCEDURE click_vk_down_or_vk_up(n=6)
  DIM i
  FOR i=0 TO RANDOM(n)
    IF RANDOM(1024) MOD 2 THEN KBD(VK_DOWN) ELSE KBD(VK_UP)
  NEXT
FEND

16 :
すみません、プロシージャ呼び出しのとこ間違えました
click_down_or_up() => click_vk_down_or_vk_up()

17 :
>>15
思った通りの動き方してます!
すばらしいです。
どうしても手動でやらなければならないところが自動化できるようになりました。
本当にありがとうございます。
こういうの普通にできるようになりたいなぁ。

18 :
それってこれだけでいいような気が
FOR i=0 TO RANDOM(6)
IF RANDOM(2) THEN KBD(VK_DOWN) ELSE KBD(VK_UP)
NEXT

19 :
FOR i=0 TO RANDOM(n)
これって均等にランダムにならなくないか?
n に近くなるほど回る確率が下がると思うんだけど
あと、カウンタ変数の開始値を1にしないと、
引数で指定した数より1回多く回っちゃう可能性があるよ

20 :
> n に近くなるほど回る確率が下がると思うんだけど
意味不明
> 引数で指定した数より1回多く回っちゃう可能性があるよ
0≦random(n)≦n-1

21 :
ある一定回数画像(複数)を見つけられないとループを抜け出すようにする方法はありませんか?

22 :
超基本的文法レベルの質問する奴ってなんなの?

23 :
1bitな質問くらい答えてやっても

24 :
この程度が出来ないと後々質問厨になるだけだな

25 :
初心者スレ作って隔離するしかないだろ
作っていいか?

26 :
こんなに過疎ってるのにスレ分けるってのもなぁ

27 :
俺もそう思うけど、初心者レベルの質問が気に食わない奴もいるんだしな

28 :
初心者質問ってよりゲームマクロの質問する奴を分けろ。
最近のお馬鹿な質問全部ゲームマクロ関係だろ。

29 :
今時間指定でプログラムの実行をするために
常に時計を表示させておいて、コピー→if clipboard = 指定時間
みたいにしてるんだけどもっといい時間指定ないかしら

30 :
>>29
GETTIME使えば?

31 :
uwscのリファレンスってないの?
どこのサイト見ても中途半端で困ってる
ie操作系の命令文が全て載ってるサイト教えて

32 :
>>31
uwscのIE操作のコマンドはヘルプに全部載ってる
IEのCOM操作のことならMicrosoftのサイトを見ろ

33 :
メールソフトのサンダーバードへ指定のメールを受信させた時にある動作をさせるようにがんばってるんだけどなかなか難しい。
UWSCでそもそもできるものなのですかねぇ。

34 :
特定のソフトに表示されてる数字を読み込むコマンドってありますか?
PosAcc(id,x,y,ACC_BACK)だとうまくいかないみたいで

35 :
>>30
ありがと
普通に使えた

36 :
>>34
GETSTR

37 :
公式FAQに
”再生時に ウィンドウが出るのをスクリプトが待ち切れずに実行されて おかしな事になる  #n8
スクリプト内のGETID関数に第3引数(待ち時間指定)を付けてください。
GETID("xxxx", "xxxx", -1)  // -1:画面が出るまで待つ”
とありますが待機時間を-1にするとUWSCの中ではどんな動作がされているんでしょうか。
待ち時間だので40とかを指定するべきではないのすか?

38 :
-1というのは「画面が出るまで待つ」という意味です。
例えば信号に例えてみましょう。
「信号が緑になったら横断歩道を渡る」という場合にあなたは
「緑になったら信号を渡る」
「40秒後に渡る」
のどちらですか?後者だと最悪、死にますよね。
-1はウィンドウが生成(表示)されたらIDを取得する、という事を意味します。

39 :
>>38
やばいっす
最高っす
ありがとうござまんた!

40 :
つうかそれくらいヘルプ見ろよw

41 :
>>38
なんか例えおかしくない?
待ち時間40秒ってのは最大じゃないの?
「40秒経って緑にならなければ諦める」なのでは?

42 :
>>41
あきらめた瞬間次の行に進んでる。
あきらめる、で想像する事が
「強制終了する」だったり「それはそれとしてエラー処理して回避」だったりして、
人によって想定が異なるだろうけど

43 :
uwsc書くときみんなテキストエディター何使ってるの
mery

44 :
uwscを使いこなすためには何を勉強すればいいのかな?
while true〜wendを複数作って、あちこちに飛ぶっていうのすら作れないレベルだけど・・・

45 :
勉強がしたければ Small Basic 使え
初心者の俺が初めて覚えるプログラム言語
ttp://hibari.2ch.net/test/read.cgi/tech/1169756560/243
> いいからこれやっとけ。
> ttp://home.jeita.or.jp/is/highschool/algo/game/index.html
> >>243の体験ゲームも午前中で全部解けたし。二重丸取れなかったのも4/43あるけど。
ってレスしたの俺だけど、元本職プログラマ。
専門学校卒で記憶喪失しまくりなのでかなり底辺だけどそれくらいはできる。

46 :
NotMultiplex=を0にも-9にもしても多重起動が出来ない。
UWSCの落し物部屋でこれで駄目だったら分からないと書いてあったから
望みは薄いのだろうけど何か知ってる人いたら教えてください。

47 :
>>46
勘違いしてるかもだけど、
UWSC.exe自体は多重起動できないみたいよ。
(NotMultiplex=0でスクリプトの多重起動は可能)

48 :
完全に勘違いしてた。ありがとう

49 :
3分おきくらいにあるサイトを巡回して、ある特定のキーワードが出現した時だけ、それをメールで知らせてくれるマクロは作れますでしょうか?

50 :
頑張れば作れます

51 :
uwscじゃないほうがいい

52 :
メールはどこかのWebメールを使うか、メールソフトを操縦する形になる。
自分でメールサーバー立てて転送しようと思っても、受け付けてもらえないように、ずいぶん前からなってるらしい。
つまり、プロバイダのアカウントなしに送信できない。

53 :
>>52
ありがとうございます
ウェブメール使用での簡単な作成方法はありますでしょうか?

54 :
>>53
かんたんでもないけど、有料版の試用期間を使って
IEでメール送信する操作を録画するとある程度再現できるんじゃないかな。

55 :
// ■■■設定開始■■■
URL = "http://www.google.co.jp/" // 検索対象URL
Search = "○○○" // 検索文字
Count = 180 // 文字が見つからなかった場合の待機時間
GmailID = "○○○" // ログインID
GmailPASS = "○○○" // ログインPASS
TO = "○○○@gmail.com" // 宛先
SUB = "TEST" // サブジェクト
BODY = "テストメール" // 本文
// ■■■設定終了■■■
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate(URL)
Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
end = 5
repeat
ifb POS(Search, IE.Document.Body.InnerText) > 0 THEN
 IE.navigate("https://mail.google.com/mail/h/")
 Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
 IESETDATA( IE, GmailID, "Email" )
 IESETDATA( IE, GmailPASS, "Passwd" )
 IESetData( IE,True,"signIn")
 Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
 IELINK(IE,"メールを作成")
 Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
 Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)

56 :
 IESetData( IE, TO,"to")
 IESetData( IE, SUB,"subject")
 IESetData( IE, BODY,"body")
 IESetData(IE,True,"nvp_bu_send","送信",2)
 Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
end = -5
EXITEXIT
else
Count2 = Count
for i = 1 to Count
if GETKEYSTATE(VK_END) then exit
 Count2 = Count2 - 1
 sleep(1)
 Fukidasi("リロード待機中 " + Count2 + "<#CR>ENDキーで終了", 50, 50 )
next
 IE.document.location.reload(true)
 Repeat; sleep(0.2); Until (! IE.busy) and (IE.readyState=4)
endif
until (end < 1)

57 :
>>53
改行大杉で2つに分かれちゃったけど。
指定したURLを監視して、特定文字列があればGmailで指定のアドレスにメール送信。
文字列が見つからなければ、指定秒数後(若干の誤差あり)にリロード。
一応動作検証はしたけど、ダメならごめんかな。

58 :
テンプレ読み直しちまったぜ・・・

59 :
ところで、昔のスクリプト動かそうとしたら「次元数が合いません」とかいうメッセージが出て動かなかった。
履歴検索すると
==================== Ver 3.1 版 ======================
05/03/26
 多次元配列への初期値の代入を出来るようにした
くらいしか見つからない。
たったこれだけのコードなのに
dim s[][2] = 1,2,3,4,5,6,7,8,9

60 :
同じウィンドウタイトルのアプリケーション(1-5くらいで不規則)に
ctrlキーを高速で連打するいい方法ある?
今はウィンドウタイトルを別のアプリで変えて手動で認識させてる
id1 = getid ("notepad1")
id2 = getid ("notepad2")
あとかなり高速で連打する必要があるんたけどmouseorgってスレッドで同時に使えない?
スレッドじゃなきゃうまくいくんだけど…

61 :
>>60
GetAllWin
スレッドでできるか?試せば分かるだろ。

62 :
>>61
数が毎回違うのと同じ名前のウィンドウを区別する方法が分からない…
スレッドで下の奴を呼び出すとうまくいかない
スレッドじゃなく連続的に動かすのはokだった
PROCEDURE 連打(windowID) MOUSEORG(windowID,2) KBD(VK_CONTROL,CLICK,10) FEND

63 :
>>62
は?IDが違うだろ。
スレッドでうまくいかないならプロセス分けたら?
EXECで呼び出し、ウィンドウハンドルを引数に渡す。
ハンドルはIDTOHWNDでハンドルにできる。
受け取ったほうはHWNDTOIDでIDにできる。

64 :
もしこのウインドウが出てた場合にはこうするという動作はどう打つんでしょうか。
ヘルプサイトに載ってたはずですがどうにも見つからなく、教えてくださいませ・・
IFB getstr(ID("ウィンドウタイトル")=true
みたいな感じだったと記憶してます。
またウインドウ変更時にACWを使うと最大化が解除されるため
CTRLWIN(GETID("ウィンドウタイトル"),max)
CTRLWIN(GETID("ウィンドウタイトル"),activate)
を使い二行消費させてますが一行で動作させる命令はありますでしょいか。

65 :
ACWは座標とか省略したら触らずにやってくれるんじゃない?

66 :
アクティブウインドウの件に関しては事故解決しました。
CTRLWIN(GETID("ウィンドウタイトル"),max,activate)
とすることで一行で済みました。
ACWは最小化されてるウインドウに聞かないので使いませんでした

67 :
特定色を画面から検出するのにPEEKCOLOR()ではなく
高速化のためにアセンブラレベルでの取得方法ってありますか?

68 :
>>67
あるよ

69 :
FAQの「バックグランドで動かしたい」のところにあるスクリプトではうまく行きましたが
いざ自分で組んでみるとうまく動きません。
何が間違ってるか教えて下さい
  id = GETID("まとめまとめ")
  MOUSEORG(GETCTLHND(id,"Chrome_RenderWidgetHostHWND"), 2)
  BTN(LEFT,CLICK,583,335,109)
以下のサイトの新着一覧の下の広告をクリックさせるテストスクリプトです
(http://matome2ch.hikoneko.net/)

70 :
バックグラウンドで動作 の程度がショボカッたので辞めました

71 :
http://www8.puny.jp/uploader/download/1315732563.avi

72 :
if関数で
その処理がTHENになるまでそのifを繰り返すというのはどうすればいいんでしょう?

73 :
WHILE
ifb
THEN
●●
ELESE
WEND
endif
上手くいきません

74 :
WHILE
ifb
THEN
●●
ELSE
CONTINUE
endif
WEND
多分これでいけるはず

75 :
syntax Error
WHILE
とでて上手くいきませんでした
ありがとうございました。

76 :
thenになるまでって意味不明

77 :
Aの画像をクリックした後に3秒間下にスクロールしてBの画像をクリックという作業をやりたいのですが
下にスクロールさせるにはどうすれば良いでしょうか?

78 :
>>77
お前はどうやってスクロールしてるんだよ。

79 :
普通にbtn(wheel, -20000)で行けましたありがとうです

80 :
>>72
そもそも条件を満たすまで繰り返しってのは
repeat〜untilがそれそのものだろう

81 :
「timeout:busy wait」とかいう小さなダイアログが出て停止してしまうのですが、
これが出た場合、直前の処理にまで戻って再度実行するには、どう書いたらいいでしょうか?

82 :
ある特定の文字を見つけたらクリック、という作業をさせたいのですが
画像認識させる方法以外で何か良い方法ありませんか?

83 :
>>82
>>55-56の文字サーチ使ったらええやん

84 :
>>83
ごめんなさい説明が悪かったかもしれないので訂正します
検索エンジンを使って文字を検索するのではなく既に開いてあるウェブページから文字列を抽出しクリックさせたいです

85 :
tst

86 :
>>84
IELINK(IE,"文字列")

87 :
>>86
ありがとうです

88 :
uwsc4.7にてMOUSEORG基準指定2でMMV()を使いたいのですが全く動きません
過去スレを見ると4.2以降は完全無視されるって書かれていますが
何か方法はありませんでしょうか。
他人が作ったゲームマクロなんですが、その中で指定している座標位置を視認したく
マウスカーソルで確認できないかと思ったのですが…

89 :
座標確認したいだけなら基準指定2を外せばいいじゃん

90 :
>>89
Flashコンテンツ上で開くウィンドウ内の座標を確認したいので基準指定2を外すと
絶対座標?になってしまって画面外にカーソルが。。

91 :
WHILE TRUE
IF GETKEYSTATE(VK_ESC) THEN EXIT
REPEAT
なんとか
UNTIL CHKIMG("画像.bmp")
REPEAT
なんとか
UNTIL CHKIMG("画像.bmp")
Call 名前.uws
ENDIF
WEND
て感じで書いてみたんですがIF GETKEYSTATE(VK_ESC) THEN EXITが発動しません
なんででしょうか?

92 :
REPEATとUNTILの間にIF GETKEYSTATE(VK_ESC)が無いから
WHILE TRUE
IF GETKEYSTATE(VK_ESC) THEN EXIT
REPEAT
IF GETKEYSTATE(VK_ESC) THEN EXIT
なんとか
UNTIL CHKIMG("画像.bmp")
REPEAT
IF GETKEYSTATE(VK_ESC) THEN EXIT
なんとか
UNTIL CHKIMG("画像.bmp")
Call 名前.uws
ENDIF
WEND

93 :
ありがとうです

94 :
call文を作って開こうとしたら
FILE Not Found
って言われるんだけど何でだろ
呼び出したいUWSは同じフォルダにあって
開くUWSは
call ○○○
だけなのに

95 :
おぉう…次はsyntaxerrorとでた
PROCEDURE:パス→ファイル名
PROCEDURE:パス→ファイル名()
どういうことなんだ…

96 :
>>95
ファイル名に、ファイル名(1)等使えないんじゃなかったかな
文字をチェックしてクリックさせたいんだが、透過してる文字を上手く認識出来ないんだ
何か良い方法ないだろうか

97 :
MMVとBTNのみで指定座標にポインタ持って行って左クリックする単純なマクロ組んでみたんだけど
マクロ動作が一回終わると、マウスポインタの位置が終了地点にあった場所のままになるのが不便です
終了時に、開始時にあった場所までマウスポインタを移動させることは出来ないでしょうか?
マウス位置は毎回決まっていないので絶対座標や相対座標での指定ではどうしても対応できません

98 :
何がわからないのかがわからない。
開始時の座標に移動すればいいだけじゃないの?

99 :
>>97
G_MOUSE_XとG_MOUSE_Yを使えば良い

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
madVR Part1
foobar2000質問スレ Part21
Mozilla Thunderbird Part19
Windows Live Writer