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/
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
2022/01/15(土) 19:38:25.22ID:DFX5O6Fa
>>65
想定としては
PCを全く触らない想定です

クリックのが実行は
特定の画像を見つけたら、定位置3か所程度をクリックするというものです
これを@の繰り返し部分につかっています。

他人の書いた命令文の見様見真似で
>>66を走らせてみたのですが
@を60秒間繰り返したのち、すぐにAが発動しちゃっていて
裏マクロのクリックはマウスの動作として認識されていないようでした
2022/01/15(土) 19:46:52.14ID:JoeIONBq
それ画像が見つからない状態が一定時間経過したら命令2に移行するでいいんじゃないの
adbによるタップはマウスカーソル座標とか全く関係無いよ
2022/01/15(土) 20:14:55.94ID:DFX5O6Fa
>>68
その方式にしたら私の知識でもうまく作れそうですね…
ただ、他のマクロにも利用できる汎用性のあるものを作りたいと考えていて
「一定時間クリックが行われなければ」をトリガーにした命令文を作りたい
と考えています
2022/01/15(土) 20:43:12.28ID:DFX5O6Fa
改めて調べてみたのだけどクリック判定は難しそうです
ひとまず、画像なしを一定時間(複数回)検知したら〜という方式で作ってみます
ありがとうございます
2022/01/15(土) 23:18:43.08ID:zZcweZ63
>>66
checkCur()
は一度Aを実行すると終了して
それを実行していたスレッドも終了してしまう
ループを2重にしてAを実行したあとはまた最初っから
の処理を繰り返す必要があるのでは
2022/01/16(日) 00:15:41.45ID:eEuzY81s
タップしたかどうかで判定したいならadbによるタップを関数化して
関数内でグローバル変数に最後にタップした時間をGETTIMEで入れればいい
2022/01/16(日) 00:32:01.33ID:V+ZRX82D
こんなん?
public isclicked=0
(省略)
procedure adbclick(引数省略)
isclicked=1
doscmd(引数省略)
fend
2022/01/16(日) 01:24:00.18ID:4EWMaBch
>>71
たしかにその通りでした
>66だとA発動条件の監視は1度だけになっていました
見てわかるのがすごい。私は走らさせないとわからなかった
2022/01/16(日) 01:36:07.69ID:4EWMaBch
>>72
>>73
言っていることは朧げに分かりますが
それを命令文化する知識が足りません。でもありがとうございます!
>>73を参考に方法を調べてみます
2022/01/17(月) 13:17:30.06ID:ephhg8o+
これってマックで使えないの?
2022/01/17(月) 13:47:39.86ID:BS7LWx0L
>>76
Windowsが動くマックなら使えるでしょ
試してないけど
2022/01/20(木) 11:03:19.87ID:V75Vz3Z+
質問します。
無料バージョンとProバージョで、単にExcel起動させるスクリプトなんですが、無料はちゃんと動くがProは工ラーが出てしまう。
Verはどちらも 5.3.0.2です。
ただ、ー部のスクリプトはProでも動きます。

使い始めて間がないので、よくわかってないところが大部分です。
よろしくお願いします。
2022/01/20(木) 11:15:19.75ID:9lIEWcOm
動くスクリプトと動かないスクリプトをそのまま貼り付けて書き込みしましょう
2022/01/20(木) 14:49:50.52ID:n7chvAG3
ついでにどう動かないのか
エラーメッセージが何なのかも書いた方がいい
2022/01/20(木) 17:35:23.20ID:V75Vz3Z+
78です。
家に帰ったら、スクリプトとエラーの表示内容をアップします。
2022/01/20(木) 21:42:35.09ID:MyoibU5A
>>78です

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.Workbooks.add()
2022/01/20(木) 21:44:19.00ID:PmxKwmhK
https://i.imgur.com/BGugBib.jpg
2022/01/20(木) 22:41:07.67ID:BEc60Lbm
セキュリティソフトを起動させておくと>>83のエラーが出たけど、OFFにしておくと問題ない

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.Workbooks.add()
EXCEL.visible = True
2022/01/21(金) 07:31:53.10ID:dq8Ljfzw
>>84
検証、ありがとうごさいました。
2022/01/23(日) 23:17:34.39ID:EK6M0RjQ
昨日まで問題なく使えてたChklmgXが急に画像認識しなくなったんだけど何か原因ありますか?
2022/01/23(日) 23:18:11.34ID:dd4Q4/BT
>>86の環境が変わった
2022/01/24(月) 17:17:53.61ID:aEoJXi2O
原因が有りすぎて特定できん
一つずつ原因を探って行くしか無い
2022/01/24(月) 18:47:54.12ID:1UwK5pur
たびたび認識しなくなるようなら
認識用の画像を取り込むマクロ組んだほうが早い
2022/01/25(火) 08:40:44.22ID:2SB0W66n
>>86ですが、どんな感じでおかしくなったかというと、
例えば「OK」というボタンがあって、色々な「OK」ボタンがあるのですが、その違いはほとんどありません。
(OとKの隙間が何ミリ違うとかのレベル)
先日までは色々な「OK」ボタンを全て認識してくれていたのですが、急に認識しなくなりました。
どれぐらい認識しないかというと通常のChklmgぐらい認識してくれません。
2022/01/25(火) 09:35:40.35ID:bQTfb4+e
>>90
chkimgXは全く同じ形でも大きさが変わると認識できない
なぜ今まで認識できていたかはわからないけどそれが本来の挙動
2022/01/25(火) 11:03:12.63ID:f9K0hpc1
Windows10だとスケーリング変えるだけで動かなくなるからそこがが一番怪しいと思うけど
次の日いきなりということ他のソフトの影響や権限関係で画像キャプチャ自体を拾えなくなってる可能性もある
2022/01/25(火) 12:15:52.72ID:clOxlBpk
OKボタンをキャプチャできないように対策された可能性も
2022/01/26(水) 18:42:02.11ID:eMrJuTGp
画像の撮り直しするしかないだろうな
自分も年2回くらいの頻度でゲームのメンテ後にそういう状況になる
2022/01/26(水) 19:31:39.15ID:3qeFT0O1
アンチエイリアスが掛かっていると
同じ画像のはずなのに僅かなドットの違いで
反応しなくなったりするみたいだな
2022/01/26(水) 20:32:24.66ID:YrQt15hx
なんならビデオカードのドライバが変わるだけでアウトだったりするしな
ほんの僅かな違いで認識しなくなる
2022/01/26(水) 22:17:32.56ID:6HW3aESR
OKの画像でダメならOだけの画像にするとはよくやる
ギリギリまで無駄な部分を削って誤差を少なくするのは基本
2022/01/28(金) 22:55:54.34ID:oecXklWi
画像認識で押さなくとも、CLKITEMで押せたりもする
2022/03/27(日) 23:40:28.02ID:04DQ0omn
すみません教えて下さい!
@〜Bの写真を順番にクリックしたいんですけど@の写真がなければAとBの動作はしないようにするには@のchkimg()のあとに=trueをつけるといいんですか?
あと@〜Bを順番に動作させたい場合はstepは使わないですか?step入れてみたのですが訳がわからなく使っててよく分かりません
2022/03/28(月) 01:13:44.89ID:Qyr8aL6i
@の画像とAの画像同時に存在するときに動作するようにする
ifb chkimg@ and chkimgA
click
2022/03/28(月) 09:23:26.66ID:Z3wXEIoi
結局代替はみんな何使ってんの?
2022/03/28(月) 09:44:40.37ID:1jf8X/eZ
今のところ代替の必要がない
103デフォルトの名無しさん
垢版 |
2022/03/31(木) 00:51:25.15ID:NioKJ8hU
教えてもらえませんか?
アクティブなウィンドウで選択している文字をCTRL+Cでコピーしたいのですが
アクティブなウィンドウが取得できません
ACW(GETID(GET_ACTIVE_WIN))をやっているのですが
別のウィンドウからコピペされてしまいます
ACW(0)だとALT+F1ではコピーできますが、再生ボタンを押すと
別のウィンドウからのコピペになってしまします
どうしたらアクティブなウィンドウを指定できますか?
104103
垢版 |
2022/03/31(木) 03:24:15.22ID:NioKJ8hU
>>103
自己解決です。
どうしても使いたい機能がある別のマクロソフトと
組み合わせることにしたので
アクティブなウィンドウの指定がいらなくなりました
お騒がせしてすいません
105デフォルトの名無しさん
垢版 |
2022/04/25(月) 01:47:22.24ID:yfsHggVp
こんばんは。初心者用スレではない方でも書き込んだのですが、こちらにお分かりになる方いればお教えいただきたいです。
タブレットPCを使用しているのですが、画面のタップを記録できず困っています。マウスでのクリックではなくタップを自動化したいのですが、どのようにすればよいでしょうか?
106デフォルトの名無しさん
垢版 |
2022/05/02(月) 21:43:17.59ID:EAkaa/98
chkimgxで教えてください。
エラーが出て動作確認の為に以下のようなコードを書きました。
if chkimgx(image file)
msgbox(“1”)
else
msgbox(“2”)
endif

if chkimgx(image file)
msgbox(“3”)
else
msgbox(“4”)
endif

これを実行すると2回目のifでエラーになります。
なぜでしょうか?
2022/05/02(月) 22:32:56.47ID:OUNKq7dB
2回目のimage fileの指定が間違ってる
2022/05/03(火) 05:14:30.48ID:q6WjpaXg
" syntax error " と
" file not foud " と
" null pointer exception " では対処が違う
2022/05/03(火) 07:27:16.98ID:UCmy3FzQ
やりたいことはifじゃなくてifbじゃないの
110デフォルトの名無しさん
垢版 |
2022/05/03(火) 10:15:47.24ID:oFZBhoiN
ご指摘ありがとうごさいます。

STARTUP_CHKIMGX()

SHUTDOWN_CHKIMGX()

使用する時この中に記述しないといけないのを見落としていました。
なんとか本来行たい事も出来ました。
すみませんでした。
2022/05/03(火) 14:09:04.62ID:KNYGN0Wa
バグの原因の多くが、スペルミスか記述漏れである事は多い

どうせスペルミスだろと思って見直す事はよくある
2022/05/04(水) 06:34:34.80ID:7xKas5ey
>>109
どっちも同じです
2022/05/04(水) 18:00:54.33ID:3g5tWLyo
やりたい事もやれない世の中はポイズン
114デフォルトの名無しさん
垢版 |
2022/05/07(土) 12:52:09.91ID:4xkMcU9J
あいまい検索プラグインのchkimgXをDLしたいのですがどこにあるでしょうか?
ご指南お願いします。
piggy-bank.jp の DNS アドレスが見つかりませんでしたとなり、みつけられませんでした。
2022/05/07(土) 12:58:40.40ID:islK5eJv
無能すぎて笑ったから貼ってあげましょう
https://classicrpa.000webhostapp.com/ChkImgX-ver1.2.1.zip
2022/05/07(土) 16:22:01.86ID:ZNYq+zf8
いろんなサイトに転載されてるから chkimgX DL でググればDL出来るサイトは普通に見つかる
117デフォルトの名無しさん
垢版 |
2022/05/07(土) 17:25:55.09ID:4xkMcU9J
>>115
ありがとうございます。
118デフォルトの名無しさん
垢版 |
2022/05/25(水) 06:44:52.01ID:u9geCx6Z
最近uwscを使い始めてnoxにadbコマンドを送ってゲームの自動化をしていたのですが、キーボード入力が出来なくて困ってます。
調べたところadb shell input keyevent A でキーボードのAが入力されるみたいなのですが、実行してみたところ何も起きません。
//入力
CMD = "cd C:\Program Files (x86)\Nox\bin & nox_adb shell input keyevent A"
print CMD //CMDの内容を確認
DOSCMD(CMD) //Noxに操作を送信
sleep(1) //操作送信後1秒待機
上記実際に試したスクリプトですがどこか間違っているのでしょうか?
2022/05/25(水) 07:28:30.21ID:KZxZ7LBt
>>118
一度に複数のコマンドを実行する場合は<#CR>改行でつなぐ
CMD = "cd C:\Program Files (x86)\Nox\bin<#CR>nox_adb shell input keyevent A"
2022/05/25(水) 10:46:15.60ID:Z9JTB2tv
自分も>>118と同じく最近uwscとnox_adbを使い始めたのですが、
chkimgXで得られたG_IMGX_XとG_IMGX_Yをnox_adbに送るとタップ位置が(xy両方)ズレてしまいます。

ifb CHKIMGX("image1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color) THEN
BTN(LEFT,CLICK,g_imgx_x, g_imgx_y,0)//←これは正しい位置をタップする
DOSCMD(dir + "nox_adb shell input touchscreen tap " + (g_imgx_x) + " " + (g_imgx_y - windowflamesize))//←これはズレる

ソースコードはQiitaの「UWSC × Nox でゲームマクロを作成する。」をほぼそのまま使ってます。
ズレが無くなるようにするにはどう書けば良いでしょうか?
2022/05/25(水) 11:34:10.69ID:kLoWZPwa
G_IMGX_XとG_IMGX_Yを+か-して調整すれば良い
2022/05/25(水) 17:11:34.18ID:Z9JTB2tv
>>121
ズレる位置が常に一定なら±するだけですが、固定値では無いんです。
何らかの法則はありそうなのですが、その計算式の求め方というか根拠が分かりません。
nox_adbのタップ位置 = G_IMGX_Y * ??? + ???
123デフォルトの名無しさん
垢版 |
2022/05/25(水) 17:59:07.24ID:u9geCx6Z
>>119
ありがとうございます
無事出来ました
124デフォルトの名無しさん
垢版 |
2022/05/25(水) 18:14:22.88ID:iso8r4bW
UWSCってなんですか?
2022/05/25(水) 19:39:24.22ID:rVGJ6xgQ
Umiumi Windows SCript
だっけ?
2022/05/31(火) 05:16:47.31ID:omctaPA2
2022/05/31(火) 06:37:44.93ID:mVj/h8Ue
Delphiで作られているらしいな
c#等の.net系は実現出来るのだろうか
2022/05/31(火) 06:45:19.87ID:SYdTC473
.net系は実現できるのだろうかってどういう意味?
2022/06/02(木) 20:31:26.54ID:rz5QQV47
見た目は今風になるだろうけどDelphiよりは確実にもっさりしたのが出来上がる
2022/06/03(金) 04:53:58.22ID:GQ43dJuv
今UWSCと同じような物を作る最適な言語はなんだ
Delphiは優秀だけど古いよな
2022/06/03(金) 09:32:49.12ID:4c5BNRsi
pythonじゃね
それかruby
ゲームのマクロ目的だからExcelを自動化みたいな考えは無い
2022/06/03(金) 14:40:18.33ID:971V5y+F
言語に古いも新しいもない
2022/06/03(金) 15:20:14.94ID:0iMwvplW
あるけど 古い=悪い わけではない
2022/06/03(金) 22:01:48.99ID:vpEWwdrG
rubyはGUIが弱くってそこを補うためにuwsc使ってるからuwscの代替となるかと言われると無理な気がする
2022/06/03(金) 22:40:43.65ID:3c73icsX
UWSCでGUIはなくてもよさそうだけど
2022/06/03(金) 22:52:34.21ID:971V5y+F
Python 1991年
Ruby 1993年
Delphi 1995年

どれも大差ないよ
2022/06/04(土) 00:45:44.64ID:vzqEPqD2
Python等のインタプリター言語で
uwscのインタプリターを作ったら
遅くなり過ぎるだろ
2022/06/04(土) 05:07:12.40ID:uhrbPQbf
知ったか
2022/06/04(土) 09:06:55.20ID:hxU+fwdC
いや、当たり前のこと言ってるようにしか思えないんだが
2022/06/04(土) 09:36:23.36ID:4UBGSNRy
作者がもうこの世にいない以上、今あるUWSCでどうにかするしかない
2022/06/16(木) 15:59:53.46ID:N3SYIUJS
>>135
fukidasiだけでもめっちゃ便利なんです
2022/06/23(木) 21:20:05.65ID:4JatNiDf
マルチスレッドを使えば
吹き出し64個同時表示が可能なんだよな
143デフォルトの名無しさん
垢版 |
2022/06/26(日) 13:09:31.78ID:hbdcqL5D
エスケープ文字のエスケープ方法を知りませんか?

ダブルクォーテーション、改行、タブは
エスケープ文字として<#DBL>、<#CR>、<#TAB>が割り当てられていますが、

例えば「"テスト<#DBL>です"」という文字列をファイルに出力すると
エスケープされて「テスト"です」という内容のファイルが出来ます。

これをエスケープされないように「テスト<#DBL>です」と出力するには
どうすればいいのでしょうか?
2022/06/26(日) 13:12:38.36ID:UB4e87n3
チョンチョンで囲っても駄目なんだな
145sage
垢版 |
2022/06/26(日) 15:45:20.94ID:1mHgElUf
>>143
//全部大文字 をやめる
msgbox("a<#"+"dBL>b")

//または
option specialchar
msgbox("a<#"+"DBL>b")
2022/06/26(日) 18:48:40.54ID:bS2HZoKx
>>145
これは自分では解決無理でした
本当にありがとうございました
147デフォルトの名無しさん
垢版 |
2022/06/28(火) 11:54:10.54ID:t3kJoord
モヤモヤが動いていて画像が指定クリック出来ません💦
あいまい画像検索しても上手くいかないのですが方法はありますか?
148デフォルトの名無しさん
垢版 |
2022/06/28(火) 11:55:08.44ID:t3kJoord
https://i.imgur.com/ysZqieY.jpg
2022/06/28(火) 17:08:34.60ID:/dfK2g9c
モザイクを無視して文字列だけを認識させるという事か?
150デフォルトの名無しさん
垢版 |
2022/06/28(火) 20:47:32.69ID:b3tUfSci
>>147

> モヤモヤが動いていて画像が指定クリック出来ません💦
> あいまい画像検索しても上手くいかないのですが方法はありますか?

集まれスレで返答貰ったので〆ます✨
レスを投稿する

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

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