自動化ツールUWSC使いよ集まれ19 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/12/04(日) 17:04:38.16ID:nLvo1o5D0
Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html

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

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

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

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

前スレ 自動化ツールUWSC使いよ集まれ18
http://potato.2ch.net/test/read.cgi/software/1469866649/
2017/03/10(金) 12:05:06.41ID:Q1z203W80
UWSCでキャッチできるエラーはどうやって投げるんですか?
2017/03/11(土) 00:53:06.35ID:WM7p96Uf0
chkimgについて質問なのですが、画面上に形が一致する画像が複数あるとして
指定した画像だけを認識したいのでx1 y1 x2 y2に座標を入れたのですが
座標外の一致している画像を認識してしまうのですが何かいい方法はありますか?
2017/03/11(土) 01:19:01.84ID:e4Jt35L70
その座標でSAVEIMGしてみ。

多分全然見当違いの座標指定してる
2017/03/11(土) 01:26:25.46ID:WM7p96Uf0
確認してみましたが座標は間違っていないんですよね・・・
2017/03/11(土) 01:28:50.15ID:WM7p96Uf0
現状は座標指定してもしなくても画面上に一致する複数の画像の中で同じ画像を認識している感じです
2017/03/11(土) 04:08:44.91ID:w66I1uSl0
>>556
どう考えても検索範囲の座標指定の仕方が間違っているとしか思えんが、
コードがないからそれ以上は答えようがない
2017/03/11(土) 06:36:24.78ID:T2U4j1ti0
mouseorgで相対座標をずらしていて
かつchkimgの座標は絶対座標で書いている

saveimgで確認してみたときは単体で動かし
mouseorgで相対座標を使ってない…とか?
2017/03/11(土) 11:04:29.50ID:e4Jt35L70
それだろうね
560名無しさん@お腹いっぱい。
垢版 |
2017/03/11(土) 23:43:07.13ID:QQENCY8r0
>>551
ありがとうございます
入力したいセルをアクティブにした後
ウィンドウIDを得てキーを送る方法で対処してしまいましたが
以後代案1を使わせていただきます
2017/03/12(日) 13:02:15.88ID:wnqkcg9D0
UWSCで今日は第2日曜日と情報を取得するにはどうすればいいのですか?
2017/03/12(日) 13:22:37.12ID:DbB9gx8z0
GETTIME関数使えばいいんじゃないかな
2017/03/12(日) 13:50:49.80ID:pR2B3N400
GETTIME()
G_TIMW_WW
G_TIME
2017/03/12(日) 14:40:12.33ID:DY9WfU920
>>553
ぜんぶの画像の座標(ALL_IMG_X[], ALL_IMG_Y[])をダンプしてみる

戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )

番号: 複数ある場合の左上からの順番を指定
-1が指定された場合はヒットした数を戻値として返し、
座標情報はALL_IMG_X[], ALL_IMG_Y[] に格納
G_IMG_X、G_IMG_Yには最後にヒットした位置が入る
2017/03/12(日) 15:16:24.25ID:pR2B3N400
>>563
ミスった
GETTIME()後にG_TIME_WWとG_TIME_DDを組み合わせればわかる。
2017/03/12(日) 16:16:28.43ID:NSfut41U0
>>561
1引いて7で割る
2017/03/12(日) 16:50:28.16ID:wnqkcg9D0
みなさん、ありがとうございます!
GETTIME関数を使えば行けると判ったので助かりました
568名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 17:18:44.82ID:nR7EjxWQ0
質問させてください

まずtest001と入力して
それをループさせるたびに数字を増やしていきたいのですが
どういった関数を使えばいいのでしょうか?

教えてください(*- -)(*_ _)ペコリ
2017/03/12(日) 19:04:34.64ID:e/n2GJyU0
もうちょっと自分で勉強してから質問して
570名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 19:51:37.63ID:nR7EjxWQ0
そこをなんとかお願いします
(*- -)(*_ _)ペコリ
2017/03/12(日) 20:07:27.06ID:pR2B3N400
>>570
copy/val/format/replace
2017/03/12(日) 20:30:34.69ID:OTmukkbY0
>>568
「test001と入力して」というのは
「"test001"という固定の文字列をユーザに入力させる」処理なのか?
固定なのに入力させるのに意味があるのか?それとも任意の文字列を入力させるのか?
その場合、"test123"とか"xyz999"とか"01ABC"とか"test001test001"も受け付けるのか?
それとも「入力して」というのは単に変数への代入を指して言っているのか?
2017/03/12(日) 21:05:01.82ID:5ELOIEYz0
プログラム書いている奴は、
そういう曖昧な質問の記述を心底嫌う。
こうミゾオチの当たりがムカっとするわな…
漠然さや曖昧さを完全に排除する作業が、
コード化という作業の前に必要なのね。
574名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 21:13:53.47ID:nR7EjxWQ0
>>572
任意です
入力というか出力させたいんです
お願いです(*- -)(*_ _)ペコリーヌ
2017/03/12(日) 21:15:37.33ID:28bavd2O0
自分が何を欲しているのかよくわかってない人は始末が悪いね

具体的に説明出来たらそれでもう質問が終わってる場合多し。
2017/03/12(日) 21:16:52.59ID:28bavd2O0
>>574
君、自分が何やりたいのかわかってないから他人に説明出来んでしょ。

人に聞く以前の話よ。
577名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 21:18:36.61ID:nR7EjxWQ0
>>573
なんか余裕のない人が多いんですね・・・
取り合えず返信待ってみますw
578名無しさん@お腹いっぱい。
垢版 |
2017/03/12(日) 21:26:36.62ID:nR7EjxWQ0
なんというかメモ帳に文字を打つ感じです
お願いします(o*。_。)oペコッ
2017/03/12(日) 21:30:00.87ID:28bavd2O0
>>578
> なんというかメモ帳に文字を打つ感じです
 ~~~~~~~~~~~~

うん。なんというか〜なんて言ってたらダメ
2017/03/12(日) 21:37:29.91ID:IWND+Bod0
とりあえず組む。
それからじゃない?
その動作をしそうなスクリプトにまったく思い至らないわけじゃ無いと思うんだけど。

少なくとも、数字は増やせるでしょ。
あとは文字列とくっつけるだけじゃない?
2017/03/12(日) 21:45:44.09ID:28bavd2O0
建設的に質問と答えのやり取りができるならそれなりに対応できるけど
最初から口あけてエサ落ちてくるの待つ気満々な奴だとこっちもやる気ナッシングですねぇ…
2017/03/12(日) 21:47:04.32ID:ox+joNR10
>>ID:nR7EjxWQ0
ここは、ただで物を教えたい人が見ているスレではなく、
質問から何か得るものがないかを探してる人が見ているだけだから、
ある程度の難度が無いと、誰もまともに答えないよ

おもちゃにされてお仕舞い
2017/03/12(日) 22:14:49.88ID:rl592N7R0
>>568

まず、

> まずtest001と入力して

これ、誰がどこに入力?
まずはここからハッキリさせてくれ。

例:人間がメモ帳に
例:uwscがメモ帳に
例:スクリプトの中で変数に
2017/03/12(日) 22:29:38.06ID:28bavd2O0
そういえばこの質問で思い出したけど、「00001」みたいな右詰めで
桁数足らない部分は0で埋めるようなの
formatで一発とかできないんかな。
replace(format(1,5), " ", "0")
みたいにやる以外に無いんですかね…
2017/03/12(日) 22:41:27.32ID:41wJ0ium0
>>583
人間がメモ帳に…プログラムをエディットしてるメモ帳にってオチだとは思うけど…
そうだとしたらとても何かを伝える気にはなれないw
2017/03/12(日) 22:55:35.08ID:OTmukkbY0
それから「任意」とか言ってるけど、それがどれくらいのことを指してるのか
>>572で挙げたような例を全部対応しないといけないのか
ほんとに?
実はこれでいいんじゃね?

・顧客が本当に必要だったもの
dim i, str
dim prefix = "test"
for i = 1 to 100
str = prefix + replace(format(i, 3), " ", "0")
print str
next
2017/03/12(日) 23:29:38.17ID:1CZJMARH0
>>586
お前みたいなバカがいるからこういうバカがつけ上がる
2017/03/12(日) 23:41:24.66ID:BVWq22Fp0
コード貼るやつって本当にこんなのばっかりだな
2017/03/12(日) 23:47:36.33ID:44stXb+M0
ドヤりたいんだろうなあ
2017/03/13(月) 00:39:15.02ID:0Fc/0uar0
一番悪いのはクレクレ房より
>>586みたいなエサやる奴なんだよな
2017/03/13(月) 00:46:23.52ID:Zt7cgqo20
とはいえ、多分目的のものとは違うと思うがな
2017/03/13(月) 01:28:06.76ID:BKRA/b8M0
こういう奴って毎回低レベルなのが笑える
2017/03/13(月) 03:04:51.03ID:F6YVZgKu0
指定範囲内をランダムクリックしたいのですが、上手くいきません
DIM x = RANDOM(200-190) + 190
DIM y = RANDOM(350-330) + 330
BTN(LEFT,CLICK, x, y)

どうやったらいいのでしょうか…
クリックすらしない状態でした
ご教授ください
2017/03/13(月) 04:01:55.95ID:F6YVZgKu0
>>593です
高速すぎてクリックしているかわからないだけでクリックはしていました
ですが、座標がおかしかったです
座標はどうしたら範囲内ランダムとなりますか?
2017/03/13(月) 04:15:34.06ID:w+OXUPO+0
>>594
10x20ピクセル四方の中をランダムクリックっていったい何なんですか?
2017/03/13(月) 05:27:27.36ID:fE1e7Bz50
たぶんさ…200〜190の間の数がXに欲しいんだろうけど。
ね。
2017/03/13(月) 07:34:45.45ID:AIJYJZRB0
>>594
まずどの範囲をクリックしたいのかが他人にはわからんのですが
2017/03/13(月) 08:10:54.63ID:aJpRdJQ30
>>593
その書き方なら190〜199,330〜349の範囲でランダムクリックすると思う
特に問題ないと思うが
2017/03/13(月) 08:15:51.62ID:ZWYZHyIS0
>>593

エスパーコード
btn(left, click, random(20)+190, random(20)+330, 100)

これで190,330〜200,350の範囲内でランダムクリックになるはず。
最後の100の数値を変えれば連打の間隔が変わるので自分で調整してみて。増やせば間隔が長くなる。
2017/03/13(月) 09:16:02.44ID:ZWYZHyIS0
あ、ごめん、繰り返し連打はしないね。
連打の話しは忘れてくれ。
2017/03/13(月) 10:41:19.00ID:Zt7cgqo20
実際に視覚してみるのがわかりやすいと思うが。
btnする座標にmmvするようにしとけば視覚は出来る

またmouseorg関係じゃねえのかな…とは思うけど
2017/03/13(月) 10:47:34.45ID:Zt7cgqo20
>>599
簡単にコードを書く上に、それがいい加減という点で昨日の馬鹿と同じ臭いがするんだが
同一人物だろ?

> これで190,330〜200,350の範囲内でランダムクリックになるはず。

あれでは190,300〜209,349だ
あまりにもデタラメすぎる
2017/03/13(月) 10:48:50.67ID:Zt7cgqo20
糞俺まで間違った
190,330〜209,349だな
2017/03/13(月) 14:07:34.07ID:RQpE5y9C0
>>603
ああごめんよ。
数値はその通りです。
でも、別人です。
2017/03/13(月) 14:17:59.88ID:RQpE5y9C0
>>603

てか、X側のランダムには10を入れたつもりが20になってた。ますますアホでしたわ。
ただしくは、

btn(left, click, random(11)+190, random(21)+330, 100)
2017/03/13(月) 15:44:33.40ID:racUVKkr0
>>595
クリック座標が同じすぎるとマクロ判定されるゲームがあるって聞いたことがある
2017/03/13(月) 15:45:57.65ID:gzKDRn950
セレクトボックスについて質問

SLCT_BOX
で出るボックスはマウスでボタンを押す形だけど、キーボードのキーをボタンに対応させることはできるの?
例えばWindowsのやつは
はい/Y,いいえ/N
みたいなかんじで出てくるじゃん
2017/03/13(月) 15:57:27.99ID:Zt7cgqo20
>>607
print SLCTBOX(SLCT_BTN or SLCT_STR, 0, "キーを押す","はい(&Y)","いいえ(&N)")

ヘルプには書いてなかったような気がする。書いておくべきとは思う。
2017/03/13(月) 15:59:39.86ID:gzKDRn950
>>608
ありがとう
2017/03/13(月) 16:36:23.75ID:om9L0EbF0
ifb chkimg("012.bmp")
A処理

elseif chkimg("013.bmp")
B処理

elseif chkimg("014.bmp")
C処理

else
msgbox("画像が見つかりません")
endif
このときもし3つの画像が見つかったとき
一番上のAの処理しか実行できませんよ。
画像が3つ見つかったとき上から順番に処理させるのは無理ですか?
2017/03/13(月) 16:37:21.93ID:om9L0EbF0
わかる先生方ご指導お願い致します。
2017/03/13(月) 16:58:29.37ID:dJFzdptY0
>>610
elseifを使わず全てifbで書く
ヒットしたらフラグを立てる
フラグが立っているか、または次の画像がヒットしたら
という条件に直せばいける
2017/03/13(月) 16:59:34.99ID:Zt7cgqo20
画像検出部と処理部に分ける
検出部で3つ全部の画像チェック
その結果を元に処理を分岐
2017/03/13(月) 17:07:41.40ID:om9L0EbF0
>>612  >>613

ifb chkimg("012.bmp")
A処理
endif

elseif chkimg("013.bmp")
B処理
endif

elseif chkimg("014.bmp")
C処理
endif

正しい書き方かはわかりませんが?
これでできましたありがとうございます。感謝です
2017/03/13(月) 20:29:52.66ID:gzKDRn950
プログラムとかほぼやったこと無いけど、uwscではそこそこ書けるようにはなってきたんだ
ただ、ちょっと大きなプログラムを作ってると書いたプログラムの見た目が気になる
何も考えず適当に作ることはできるんだけど
後から手を加えたりすることを考えるとそのうち把握出来なくなっていきそうなんだよねe

「設計」とでもいうのかな
そういうプログラミング全体の書き方として指針になるサイトがあったら教えてほしい
2017/03/13(月) 20:39:06.28ID:OfrpRCCo0
製品でも共同開発でもないんだから形に拘る必要はない
2017/03/13(月) 22:42:53.85ID:Fedw/pSJ0
メンテナンス的に拘ったほうがいいでしょ
でもUWSCは必要なときに必要なだけ手軽に作ってけるのがいいから
最低限ユーザー関数とCallとかの使い方覚えとけばいいと思う
2017/03/13(月) 22:43:46.29ID:3NS29CIy0
いろいろ書いてたらgdgdになったので簡潔に

今時のまともな言語で構造化プログラミングを意識して作れば
数十kライン程度なら十分見通せるコードが書ける
2017/03/13(月) 22:48:32.19ID:Zt7cgqo20
そういうのは最初から意識してないとね…

後からやると地獄ですよorz
ていうか今地獄見てますがな適当に作り始めたのを後悔してる
2017/03/14(火) 00:16:10.49ID:AvgoQ3xf0
たまに、こんなところでCOMエラーが発生するんだけど、もう全体をCOM_ERR_IGN/RETでくくって
COM_ERR_FLGをこまめチェックな方向になるんですかね。

if !IE.busy AND IE.READYSTATE >=4 then break
2017/03/14(火) 00:41:59.32ID:iSTiFNmi0
>>615
「プログラム書法」でぐぐるとサイトがいくつか出てくるけど、本を買ったほうが良い
すぐ出来るのは、コメントをこまめに書くこと
2017/03/14(火) 01:13:34.13ID:FnWn195l0
・コメントは「このコードがやってること」じゃなく「このコードの意味すること/目的としてること」を書くこと
・処理内容を一言で言い表せる単位で関数に分割すること(あくまで目安だが)
 細かい処理を関数/手続きに吐き出したら、それを集めた大きな処理も簡単な言葉で表せるようになる
2017/03/14(火) 05:09:29.96ID:xPN0WLGv0
遅れてすみません、>>593です
>>598さん
2つの範囲内でクリックという形になってたのですね…
道理で思った通りに動かないと思いました
>>599
その通りだと思います、範囲内をクリックしたかったんです
勉強になりました!
エスター凄い…ありがとうございます!
>>602,603さん
数値がどうなっているのかわかりやすかったです
ありがとうございます!
2017/03/14(火) 11:44:37.30ID:mQ1dbkYl0
>>623
みんな書いていることは同じ。問題ないっていうのを形を変えて書いてるだけ。
君の>>593のコードは全く問題がなく、一定範囲をランダムクリックする。

おそらくここのコード以外の所で間違っていて、その影響がここに出ているだけ。
この部分だけを抜き出せば、全然問題ないといえる。
2017/03/14(火) 12:39:56.60ID:yfMhc7oz0
まぁ多分x,yの宣言がループの外にあり、
ループ内で値が更新されなかった
一行でかいたらループ内だから更新された
と言うオチだろうな
2017/03/14(火) 13:58:20.56ID:mQ1dbkYl0
mouseorgで基準点を変えているってオチがUWSCでは一番多いかと思う
2017/03/14(火) 22:49:50.81ID:YKDpE5540
リストビューで指定したカラムの文字を配列に入れたいのですがどうすれば良いのでしょうか?
2017/03/14(火) 22:56:17.57ID:YKDpE5540
すみません。途中で送信してしまいました
下の画像のData4を配列に入れたいのですが処理の手順としてどうすればよいのでしょうか?
よろしくお願いしますm( _ _ )m

http://iup.2ch-library.com/i/i1787920-1489499618.jpg
2017/03/14(火) 22:59:31.44ID:bSqsGlN60
処理の手順としては、
配列を作る
順番に配列に入れる
でいいと思うよ
2017/03/15(水) 00:12:20.43ID:eYtO677d0
>>628
data[i]=i行目のデータ
をfor文で行数分ループさせるだけやで
2017/03/15(水) 10:35:38.74ID:AidkXGR10
WindowsUpdateが裏で動いてるとuwscが遅くなったり期待通りになりません
対策があれば教えてください
2017/03/15(水) 11:07:01.21ID:zKKc72ap0
>>631
CPU使用率見て一時停止でもすれば
2017/03/15(水) 11:53:19.63ID:m1hNnfDn0
>>631
windowsUpdateの設定を通知だけにする。
(自動インストールをOFFにする)
2017/03/15(水) 17:39:33.19ID:GdlcDpYN0
しない日はupdateサービスから止めると万全
2017/03/17(金) 20:10:30.71ID:wXYKgTUZ0
bluestacksv2.6.104 for Windows
最新のだけどbackground処理が上手くいかないんだけども
出来てる人いますか?
出来てる人いたらご教授お願いします。
2017/03/17(金) 20:44:37.74ID:p0KMIfY50
出来ない
さようなら
2017/03/17(金) 21:29:55.45ID:wXYKgTUZ0
himacroでできてuwscできないってuwsc糞なんですね・・・
2017/03/17(金) 21:45:05.09ID:J++JO+lf0
>>637
おうよ
だからもうここにはこなくていいよw
2017/03/17(金) 23:56:23.00ID:p0KMIfY50
himacroとやらで出来るならそのままそこに住んでたら幸せだろうに
2017/03/18(土) 00:21:56.65ID:n6hlP9jq0
これ何回目だよ
本当にこういうゲーム馬鹿の糞ガキってスレ内検索しねーな
2017/03/18(土) 00:39:40.71ID:DDXE+KtU0
でも、マウスクリック連打程度の自動化で楽しめるってうらやましいなw
2017/03/18(土) 22:42:40.41ID:i8gl2B3T0
左手用キーパッドをいっしょに使用されている方いらっしゃいますか?
https://www.amazon.co.jp/dp/B012G8E180/
2017/03/18(土) 23:18:48.00ID:flnZHCGJ0
UWSCと何の関係があるんだ
2017/03/19(日) 16:44:36.56ID:EMldnQHk0
オブジェクト座標で指定した場所をダブルクリックするにはどう書けばよいのでしょうか?
2017/03/19(日) 23:07:40.04ID:h2IH62SB0
低レベル記録してみる
2017/03/20(月) 10:37:39.00ID:GhDskGm10
FNAME = "C:\temp.txt"
ID = FOPEN(FNAME,F_WRITE)
while true
IF GETKEYSTATE(VK_ESC) then break
IF GETKEYSTATE(VK_LBUTTON) then
C = "X:" + g_mouse_x + " Y:" + g_mouse_y
FPUT(ID,C)
sleep (1)
endif
wend
FCLOSE(ID)

左クリックした時のカーソルの座標をtextに書き出したんだけど
これだと1ヶ所につき2回出力してるみたいでどこ直したらいいか分かる人いる?
2017/03/20(月) 10:59:05.84ID:AHUhVNlL0
>>646

FNAME = "G:\temp.txt"
ID = FOPEN(FNAME,F_WRITE)
while true
print "1"
IF GETKEYSTATE(VK_ESC) then break
print "2"
IF GETKEYSTATE(VK_LBUTTON,click) then
print "3"
C = "X:" + g_mouse_x + " Y:" + g_mouse_y
print "X:" + g_mouse_x + " Y:" + g_mouse_y
FPUT(ID,C)
sleep (1)
endif
print "4"
wend
print "5"
FCLOSE(ID)

適当にprint入れて確認したけど特におかしくないぞ
ただちゃんとesc押さないと
FCLOSE(ID)までいかないから記録されれないようだがな
2017/03/20(月) 11:03:53.00ID:AHUhVNlL0
>>646
すまん、しばらくテストしてたら稀に2回出力されてるな
なぜだろうか
2017/03/20(月) 11:08:33.08ID:AHUhVNlL0
追記
print "4"のあたりにsleep(1)入れたら2回記録されなくなったようだ
これで解決じゃね?
2017/03/20(月) 11:23:39.07ID:GhDskGm10
>>647
ありがとうございます
それでやってみます
2017/03/20(月) 11:31:54.86ID:IehrLnV90
キー押下状態の更新はsleepした段階だと思って組んだ方がいい
getkeystateをsleepなしのループで使うとうまく動かない
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況