UWSC初心者用スレ2

2021/11/18(木) 19:12:15.32ID:DCbtCP/2
UWSC初心者用スレです

わかってる人はこっち
自動化ツールUWSC使いよ集まれ24
http://egg.2ch.net/test/read.cgi/software/1625624264/

アドバイスされる方には
相談者が理解できていない部分を責めたりしないよう
お願いいたします

前スレ
UWSC初心者用スレ
http://mevius.2ch.net/test/read.cgi/tech/1537758829/
2021/11/18(木) 19:13:06.18ID:DCbtCP/2
●ダウンロード
https://www.vector.co.jp/soft/winnt/util/se115105.html
https://web.archive.org/web/20180125141222/http://www.uwsc.info/download.html

●サンプル
http://www.uwsc.info/sample.html

●FAQ
http://www.uwsc.info/faq.html
2021/11/18(木) 19:15:32.85ID:DCbtCP/2
●UWSC 掲示板(※作成依頼掲示版ではありません)
質問の際には自力で作ったスクリプトを晒すか、
具体的な解らない場所を提示すること
上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi

●UWSC - Wikipedia
http://ja.wikipedia.org/wiki/UWSC
2021/11/18(木) 19:16:04.98ID:DCbtCP/2
●使い方・基礎解説学習サイト
http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
http://www.confrage.com/uwsc/
http://necro.jp/dev/uwsc/
http://canal22.org/
http://big.tm.land.to/handbook/uwsc.htm
http://www.game-rev.com/review/gameut/uwsc.html
2021/11/18(木) 19:17:03.75ID:DCbtCP/2
●スクリプトテンプレサイト
http://siromasa.html.xdomain.jp/uwsc/index.html
http://scripts.web.fc2.com/
http://nem.symphonic-net.com/uwsct/0610uwsct.html
http://iriyak.adam.ne.jp/uwsc.html
2021/11/18(木) 19:44:11.37ID:55HQlN17
おったておつ
2021/11/18(木) 20:16:10.94ID:LLuemXlB
まだ使ってるやついるのか
作者の活動もなくなりバージョンアップもなくなったのに
2021/11/23(火) 13:25:26.30ID:1xbfCQjm
仕様が枯れてるから使いやすいんだよ
2021/11/23(火) 21:58:29.09ID:TqmCy8hF
インストールするファイル数も少なくて
サイズが小さいのもいい
2021/11/24(水) 22:51:37.72ID:2Dm59tnS
代替も無いしね
2021/11/27(土) 14:20:14.83ID:jTZUbSpl
死んだ人の成果物を許可も経ずかっさらう真似なんて日本人ならできないよ
2021/11/27(土) 14:55:21.26ID:lBAvNkqJ
かっさらう人がいるんですか?
13デフォルトの名無しさん
垢版 |
2021/12/03(金) 12:54:28.64ID:VvrxD7Wi
ブラウザエロゲー(Unity製)を自動化したんだけど、同時にエロサイト見たいから裏マクロにしたら動かなくなった。
ブラウザはGoogleChrome。
最前面でWHILE以下だけなら問題なく動く。
裏マクロにすると最前面でも動かない。
-----------------------------------------------------------
最前面で動くマクロ
WHILE TRUE
ifb getkeystate(vk_end) then
break
endif
mmv(1000,875)
IFB CHKIMG("enemy_select.bmp")
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y+50)
(中略)
ENDIF
mmv(1050,875)
WEND
-----------------------------------------------------------
sleep(5)
ID = GETID(GET_ACTIVE_WIN)
MOUSEORG(GETCTLHND(ID, "Chrome_RenderWidgetHostHWND"), MORG_DIRECT, MORG_BACK)
WHILE TRUE
ifb getkeystate(vk_end) then
break
endif
mmv(1000,875)
IFB CHKIMG("enemy_select.bmp")
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y+50)
(中略)
ENDIF
mmv(1050,875)
WEND
2021/12/03(金) 13:35:34.70ID:GJFzQR1P
>>13
自動化ツールUWSC使いよ集まれ24
https://egg.5ch.net/test/read.cgi/software/1625624264/
2021/12/04(土) 22:16:53.27ID:L57911eN
>>13
裏マクロの指定がおかしいから動いていない
Chromeで裏マクロにしてサイトのSTOPボタンを押す例

ID = GETID("Chrome")
MOUSEORG(ID,MORG_DIRECT,MORG_BACK)

CLKITEM(ID,"STOP")
2021/12/05(日) 08:25:11.57ID:gxpObDNw
GET_ACTIVE_WINに草
2021/12/05(日) 14:13:20.36ID:slvwfW4i
ID = GETID(GET_ACTIVE_WIN) にしたら、そのエロサイトのウインドウのIDが入ってしまう
ブラウザエロゲーサイトのタイトルの一部でも指定する事
18デフォルトの名無しさん
垢版 |
2021/12/05(日) 19:14:17.88ID:v/FRDOhm
>>15
>>17
回答サンクス

何度か書き直してみたんだけど、やっぱりうまくいかんわ。
たぶん↓2点を理解してないからうまく書けないんだと思う。

1,IDとハンドルの違いを理解してないこと。
2,「タブの指定→操作を送る」という過程でタブの指定の仕方を理解してないこと。
2021/12/05(日) 20:03:28.40ID:slvwfW4i
タブを切り替える機能は無いから、エロゲサイトとエロサイトのタブは別ウインドウで開く
画像認識してクリックするだけならハンドル取得は不要

ID = GETID("エロゲサイトのタイトル") //タイトルの一部でも可
MOUSEORG(ID,MORG_DIRECT,MORG_BACK)
2021/12/05(日) 20:05:42.29ID:gxpObDNw
>>18
自分で書く気があるなら関数ひとつひとつについてヘルプでどういうものか確認しよう
書き直してダメだった内容とどうダメだったかも書こう
21デフォルトの名無しさん
垢版 |
2021/12/05(日) 22:14:44.39ID:v/FRDOhm
とりあえず、ウィンドウはエロゲのみ、タブもエロゲのみの状態で起動。
uwsc起動後uwscのウィンドウにSTOPと表示されているため、起動はしている。
その後、何の反応も無い。
画像認証はおろか、mmvもしない。
エロゲのウィンドウをアクティブにしても反応無し。
試しにエロゲ内のボタンをクリックしてみると、80%くらいの確立で無効になる。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ID = GETID("ミッドナイトガールズR")
MOUSEORG(ID, MORG_DIRECT, MORG_BACK)
WHILE TRUE
ifb getkeystate(vk_end) then
break
endif
mmv(1000,875)
IFB CHKIMG("enemy_select.bmp")
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y+50)
以下略
2021/12/06(月) 00:48:34.71ID:tj91aATu
>>21
提示したソース正しいのか?
WHILEの無限ループ内で高速でMMVしているので
何の反応もないように見えるしクリックしても思った場所が
クリックできなくて無効になってるように見えてる気がする
MOUSEORG相対座標にするらしいからエロゲウインドウの
位置補正がたぶん必要

ID = GETID("ミッドナイトガールズR")
print "id: "+id //IDが取得出来ているか確認
win_x = status(id,st_x) //エロゲウインドウのx座標
win_y = status(id,st_y) //エロゲウインドウのy座標
print "x: "+win_x + " y: "+win_y //エロゲウインドウの座標確認
MOUSEORG(ID, MORG_DIRECT, MORG_BACK)
WHILE TRUE
ifb getkeystate(vk_end) then
break
endif
mmv(1000 - win_x ,800 - win_y) //エロゲウインドウの座標補正
IFB CHKIMG("enemy_select.bmp")
print "chkimg true" //画像検索成功しているか確認
print "g_img_x: "+g_img_x + " g_img_y: "+g_img_y //画像の座標を確認
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y+50) //g_img_x,g_img_yはエロゲウインドウの相対座標なので補正不要
(中略)
ENDIF
mmv(1000 - win_x, 850 - win_y) //エロゲウインドウの座標補正
WEND
2021/12/06(月) 00:51:01.53ID:tj91aATu
ぱっと見てmmvの座標間違えてるのは気付いたので読み替えて
2021/12/06(月) 01:04:31.76ID:3grpylNW
素人だけど設定のハードウェアアクセラレーションを無効にすると動くこともある
2021/12/07(火) 15:40:22.89ID:RnWlic2L
>>22-24

このスレめっちゃ親切やな
ありがとー
また今度試して報告する

画像認識、mmvしないって書いたけど、間違いかも。
正しくは、画像認識してるか分からない、mmvしてるか分からない。だ。
2021/12/07(火) 18:35:55.47ID:o45XSsNi
>>25
まずそこ分かれよw
print入れれば確認できる
27sage
垢版 |
2021/12/10(金) 18:41:11.33ID:9PsZqLaO
こんばんは
UWSCの超初心者です。

UWSCでNOXのブラウザゲームのマクロを作りたく、
サイトさんでコピペをしましたが、NOXの上部を連打して画像をタップしてくれません。

大変お手数ですが、ご教授いただけますとありがたいです。

やりたいことは
@画像1があった場合、画像2をクリックし画像3をクリックし終了
A画像2が無ければ、画像4をクリックし画像5をクリックし
@へ戻る
コードは以下の通りです。

winid = getid("NoxPlayer")
print "ウィンドウIDを取得しました。"
print "ID.NOは" + winid
winPosX = STATUS(winid,ST_X)
winPosY = STATUS(winid,ST_Y)
winsizeX = STATUS(winid,ST_WIDTH)
winsizeY = STATUS(winid,ST_HEIGHT)
print "位置X 位置Y 幅 高さ"
print winPosX + " " + winPosY + " " + winsizeX + " " + winsizeY
print "位置X 位置Y 幅 高さ"
print winPosX + " " + winPosY + " " + winsizeX + " " + winsizeY

adbsizeX = 540
adbsizeY = 960

windowflamesize = winsizeY - adbsizeY
print "ウィンドウサイズは" + " " + windowflamesize
28sage
垢版 |
2021/12/10(金) 18:42:06.57ID:9PsZqLaO
MOUSEORG(winid,MORG_DIRECT,MORG_FORE)

CALL ChkImgX.uws


y1 = 0
x2 = 540
y2 = 980
Detect_num = 1
Threshold_delta = 5
Target_color = -1

startup_chkimgx()

While True
ifb CHKIMGX("画像1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
CHKIMGX("画像2.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
btn(left,click,g_img_x,g_img_y)
CHKIMGX("画像3.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
btn(left,click,g_img_x,g_img_y)

endif

elseif CHKIMGX("画像4.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
btn(left,click,g_img_x,g_img_y)
CHKIMGX("画像5.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
btn(left,click,g_img_x,g_img_y)

else
29sage
垢版 |
2021/12/10(金) 18:42:54.59ID:9PsZqLaO
print "画像が見つかりません"  

endif

sleep(3.5)

Wend


以上の通りです。
お手数おかけいたしますが、なにとぞよろしくお願いいたします。
2021/12/10(金) 20:08:07.17ID:Zx61Q8si
>>29
chkimgx.uwsの中確認したら?
g_imgx_x,g_imgx_y
2021/12/10(金) 21:17:10.72ID:9PsZqLaO
>>30
chkimgx.uwsの中は弄ってませんでした…
Visual Studio Codeで開いてみましたが文字化けだらけで意味不明でした…
2021/12/10(金) 21:33:40.29ID:W+CsWCwh
>>31
開いている文字コードが違うのでは
chkimgx.uws はShift_JISだよ
いじる必要はないんだけど扱うのに必要なことが書いてあるので読むべき
2021/12/10(金) 21:41:00.65ID:W+CsWCwh
Visual Studio Code で文字化けせずにSJISファイルを開く
https://iucstscui.hatenablog.com/entry/2021/02/01/221038
↑貼れないので全角化した
2021/12/10(金) 21:45:52.53ID:wtDmROT3
// ID: Windowを識別するID (0 であればスクリーン全体)
// ※MOUSEORGの設定は取得できないのでIDを明示的に指定してください
// 0の場合MORG_FORE, Window IDを指定した場合MORD_BACKと同じように動きます
2021/12/10(金) 22:55:50.53ID:YWWq+54U
>>32、33、34
ありがとうございます!
まずご参考の通り開いてみてやってみます!
2021/12/12(日) 11:50:31.75ID:cgJROYQS
質問なんですが、PCを買い替えた場合、モニターのサイズと解像度が同じなら画像をそのまま新しいPCでも流用することは可能ですか?
それとも画像を再取得する必要があるのでしょうか?
2021/12/12(日) 12:21:31.25ID:YGBHMNxc
流用できることもある
2021/12/12(日) 13:54:09.62ID:zbEQabkL
拡大縮小してなければモニタの解像度が違っても行けるだろ
2021/12/12(日) 16:48:28.91ID:cRL3yS5P
>>36
ブラウザの操作ならブラウザの縦横幅を同じにすれば使える
解像度は影響しないように汎用的に作れば良い
2021/12/12(日) 22:37:17.97ID:SJzQ+Dpm
色が
グラボやOSやソフトで、グラデやスムジを切るか、旧と同じに
2021/12/12(日) 22:38:38.53ID:SJzQ+Dpm
半透明
バッグラ描画さぼり
2021/12/14(火) 03:11:27.78ID:wO1KVDXL
何故にカタコト
2021/12/14(火) 03:20:27.17ID:IDcXj5e5
相手に
合わせた
2021/12/14(火) 08:25:28.27ID:nethN8Rv
別にその質問レスは片言でも何でもないだろ
2021/12/24(金) 10:11:28.47ID:S6AOyW3k
これの代わりになるツールないの?
2021/12/30(木) 21:03:24.29ID:ESCS1df0
動く画像を認識させる方法ってないのかな?
いくら調べても静止画像の認識方法しか出てこないんだけど
2021/12/30(木) 21:10:29.75ID:dYE8+B1V
動いてる画像を録画ツールで記録して、静止画に分解して、分解した画像をchkimgxで認識させてる
2021/12/30(木) 21:57:23.32ID:ESCS1df0
なるほど、フレームの画像を取得するのか
2022/01/13(木) 01:01:01.47ID:OoQIgOAu
windows11へアップグレードしたけど画像が撮り直しになってしまった
仮想OSのほうもイメージ自体は変わってないはずだけどそっちも画像が取り直しになって
めんどくさいから10に戻した
2022/01/14(金) 09:03:29.23ID:MBIe30li
初心者です。同じ名前の複数ウインドウを指定位置にそれぞれ移動させたいのですがうまくいきません
GETALLWINではやりたい動きにはならなかったので他の方法でわかる人いませんか?
2022/01/14(金) 10:31:06.33ID:5o7urNRR
見つかったウィンドウを順番に指定位置に移動するのではダメということですか
自動化しない場合は同じ名前のウィンドウをどうやって区別しますか
2022/01/14(金) 10:52:30.69ID:MBIe30li
>>51
1番目に見つけたのを左上、2番目を右上、3番目を左下みたいな感じにしたいです
ACWでの区別の方法がわからない状態です
53デフォルトの名無しさん
垢版 |
2022/01/14(金) 11:17:36.33ID:XYCePjt2
見つけた順を元にするのならわざわざ区別する必要は無いだろ
見つけたものから順に処理させれば良いだけのことだ
2022/01/14(金) 11:24:57.20ID:5o7urNRR
>>53
使い方がわかってないのでは
>>52
getallwinで取れるidの配列をforループか個別にacwに指定したらダメですか
FOR n = 0 TO GETALLWIN() - 1
DIM ID = ALL_WIN_ID[n]
acw(id,位置指定とか)
省略
2022/01/14(金) 11:42:09.49ID:MBIe30li
ネットのテンプレ文を少し変えて使ってるレベルの理解度なので応用とかは全然わかってないです
>>54
試してみます
ありがとうございます
2022/01/14(金) 12:48:18.52ID:sk790Gu7
>>55
>>54 に書かれているものと組み合わせて
STATUS()でとったタイトルを
IF で判断して必要な場合だけ
ACW()するようにする

特殊な表示をしていればSTATUS()で思うような内容が
返ってこないことはありえるけど滅多にないだろう

テスト中STATUS() で返ってくる内容をチェックするには
ウィンドウ数が少なければMSGBOX()
多ければSLEEP()で適当に時間をとりながらPRINTを使う
選択的に表示しないで
にPRINT一回一回にSLEEPを使わず
GETALLWIN()の内容を全部表示したあと
SLEEP()を長くとってまとめてチェックすれば
IFでの処理間違いで表示が出ない場合などの確認ができる

テスト中はSTOPFORM()を表示して
止めたいときに止められるようにしておくといい
2022/01/14(金) 13:22:03.98ID:MBIe30li
>>56
詳しくありがとうございます
やってみます
2022/01/14(金) 20:21:44.68ID:qQu95WeC
実行中
UWSC自体の位置を変えて終わるときに位置を元に戻す
といったことをやりたいのですが
UWSC自体のウィンドウの制御ってどうやるんでしょう?
2022/01/14(金) 21:46:02.04ID:sk790Gu7
>>58
UWSC自体というのが
https://img02.hamazo.tv/usr/k/t/p/ktpcschool/uwsc.png
( https://ktpcschool.hamazo.tv/e7906854.html )
(↑このURLは画像を借りた場所という以上の意味はないです)
これのことだとしたら
GETID("UWSC", "TUMain_uwsc")
で取得したIDで動かすことができる
2022/01/14(金) 22:07:31.95ID:sk790Gu7
ただ、もしかしたら勘違いしてるんじゃないかという気がするのは
実行時にそのウィンドウは別に必要ないということ
コマンドプロンプトその他から
c:\dokoka\UWSC.exe c:\script\nanika.uws param1 param2 param3 ...
の形で実行されさえすればいい
2022/01/14(金) 22:34:09.28ID:sk790Gu7
拡張子uwsと関連付けができていればエクスプローラー上で
uwsをダブルクリックすれば動作するようになる

HKEY_CLASSES_ROOT\Applications\UWSC.exe\shell\open\command

HKEY_CLASSES_ROOT\uws_auto_file\shell\open\command

既定値を
"c:\dokoka\UWSC.exe" "%1" %*
のように「%*」
をつければパラメータも扱えるようになるので
uwsのショートカットにパラメータを記述して動かせるようになる
コマンドプロンプトでもいちいちUWSC.exeを書かなくても
c:\uwsscript\nanika.uws param1 param2 param3 ...
で動かせるようになる
環境変数PATHにc:\uwsscript を追加すれば
パスを指定する必要もなくなり
nanika.uws param1 param2 param3 ...
で動作させられるようになる
2022/01/15(土) 16:59:47.34ID:DFX5O6Fa
「一定時間マウス操作が無かった時に発動する命令」についての質問です

命令@を繰り返し続ける

1分間クリックが行われなかった場合は
命令Aを行う

命令@の繰り返しに戻る

という命令文を「adbの裏マクロ」で組みたいです。
通常のマクロで上記を行う場合は「マウスカーソルの座標が移動したかどうか」
を発動条件にすればできると聞きましたが、
マウスの動かない裏マクロで上記をみたす命令文は構築できるのでしょうか
できる場合は例文やヒントを教えていただきたいです
1分間クリックが行われない状況が多岐にわたるため
「特定の画面になったら命令Aを行う」はできそうにありませんでした
2022/01/15(土) 17:17:26.50ID:2W+4eRYP
マウスカーソルの座標を取得し、一分後のマウスカーソルの座標と比較
2022/01/15(土) 17:38:40.10ID:DFX5O6Fa
>>63
マウスが動かないためそれが出来ず困っています
「クリックが行われたかどうか」の有無を判定する命令文があればいいのですが…
2022/01/15(土) 18:11:34.39ID:8h/gvJDc
下の想定はあってる?
ゲームを裏で自動で動かす一方で表ではPCをいろいろ使ってる
ゲーム内で1分クリックがなかった場合は命令2をする

クリックはどうやって行われるの?
命令1の中にクリックが含まれる?
気が向いた時に自分でゲーム操作してクリックする?
2022/01/15(土) 19:18:49.62ID:DFX5O6Fa
THREAD checkCur() //以下の命令文を「checkCur()」で監視する

WHILE TRUE //@を繰り返す
(操作@)
WEND

PROCEDURE checkCur() //「checkCur()」の効果を下記のうように定める
t = GETTIME()
WHILE TRUE
x = G_MOUSE_X
y = G_MOUSE_Y
SLEEP(1)
IF G_MOUSE_X <> x OR G_MOUSE_Y <> y THEN t = GETTIME()
FUKIDASI(GETTIME() - t)
IF GETTIME() - t >= 60 THEN BREAK
WEND

(任意の操作A) //60秒何もなかったらAを実行
FEND
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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