UWSC初心者用スレ2 (284レス)
1-

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

わかってる人はこっち
自動化ツールUWSC使いよ集まれ24
2chスレ:software

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

前スレ
UWSC初心者用スレ
2chスレ:tech
158
(2): 2022/08/08(月)14:21 ID:A57pDOpl(1) AAS
同じウィンドウ名とクラス名のブラウザアプリ(ChromeとEdge)で、同時に同じ箇所を1回だけ裏クリックしたいです。
色々なサイトを参考にして書いてみたのですが、全く動作しませんでした。
どう改善すれば良いかご教示ください。

FUNCTION GETID2(title, class, n)
DIM cnt = 0
FOR i = 0 TO GETALLWIN() - 1
DIM ID = ALL_WIN_ID[i]
DIM targetTitle = STATUS(ID, ST_TITLE)
DIM targetClass = STATUS(ID, ST_CLASS)
IFB POS(title, targetTitle) <> 0 AND POS(class, targetClass) <> 0 THEN
省13
159
(1): 2022/08/09(火)20:42 ID:WTH4cAqy(1) AAS
For i = 1 to 100

BTN(LEFT,CLICK,x1,y1,0)
sleep(5)
BTN(LEFT,CLICK,x2,y2,0)
sleep(5)
BTN(LEFT,CLICK,x3,y3,0)
sleep(5)
BTN(LEFT,CLICK,x4,y4,0)
sleep(5)

next
省1
160
(1): 2022/08/10(水)21:46 ID:zuCuX6KX(1) AAS
>>159
画像があればクリックするという関数をつくって
それをBTN()とBTN()の間で呼ぶようにすればいい

THREAD()を使ったりするとクリックの競合が
発生しないように制御しなければならなくなるので
こちらのほうが素直
161: 2022/08/11(木)13:41 ID:UtolBXHt(1) AAS
For i = 1 to 100

BTN(LEFT,CLICK,x1,y1,0)
sleep(5)
BTN(LEFT,CLICK,x2,y2,0)
sleep(5)
BTN(LEFT,CLICK,x3,y3,0)
sleep(5)
BTN(LEFT,CLICK,x4,y4,0)
sleep(5)

IFB CHKIMG("画像A.bmp");BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5,0);ENDIF
省1
162
(1): 2022/08/12(金)14:38 ID:m6+pfbJk(1) AAS
>>160
BTN()が100以上など数が多い場合も間で呼ぶしかないのでしょうか。

>>
161
4回クリックした後に画像検索をするのではなく、1クリックごとに画像検索できるようにしたいです。

返信ありがとうございました。自分でも調べてみます。何かわかれば教えてください。
163
(1): 2022/08/12(金)15:35 ID:AU9IgIpc(1) AAS
>>162
こんな感じでどう?

For i = 1 to 100

HOGE1(x[i],y[i])

next

PROCEDURE HOGE1(x, y)
省4
164: 2022/08/13(土)16:39 ID:p1KZrIM2(1) AAS
>>163
ありがとうございます。
試してみます。
165
(2): 158 2022/08/13(土)18:04 ID:NorQZddu(1/2) AAS
すみません、どなたか教えていただけませんか…
166
(1): 2022/08/13(土)19:43 ID:KPz0o6R8(1) AAS
>>165
ChromeあるいはEdgeのどちらか単体で裏クリックはできてますか?
それができればあとはさほど難しくないです
167
(1): 2022/08/13(土)20:59 ID:P4IK+cir(1/2) AAS
>>165
ChromeとEdgeでBTN(LEFT, CLICK, 319, 474)ができれば良いのか?
168
(1): 2022/08/13(土)23:00 ID:NorQZddu(2/2) AAS
>>166
解説しているサイトから拾ってきた以下のコードで裏クリックできることは確認できました

id = GetID("ゲーム名")
id = GetCtlHnd(id,"Chrome_RenderWidgetHostHWND")
MouseOrg(id,2)

BTN(LEFT, CLICK, 319, 474)

MouseOrg(0)

>>167
はい、両方で同時に同じ箇所をクリックしたいです
ただ、どちらもウィンドウ名とクラス名が全く同じなので、そこでどうすればいいのかわからなくなってしまいました
169
(2): 2022/08/13(土)23:36 ID:P4IK+cir(2/2) AAS
//難しく考えすぎなんじゃ無いの?

DIM クローム = GETID("Chrome"),エッジ = GETID("Edge")

MOUSEORG(クローム,2,2)
BTN(LEFT,CLICK,319,474)
MOUSEORG(0)

MOUSEORG(エッジ,2,2)
BTN(LEFT,CLICK,319,474)
MOUSEORG(0)
170
(3): 2022/08/14(日)00:19 ID:1XEnC456(1/2) AAS
>>169
ごめんなさい、説明不足でした
そのブラウザゲームというのが、ブラウザから独立したアプリ?のような扱いになっているので、
タイトル名にChromeやEdgeといった文字が含まれておらず、ゲーム名だけなのです
171: 2022/08/14(日)01:05 ID:wZs9w9Jg(1) AAS
>>158のソースはgetid2を呼んでるのかと呼んでるなら引数のn=0が仕事してなさそうな気がするけどその辺は正しいの?
172
(1): 2022/08/14(日)09:26 ID:C9iCXLwP(1/2) AAS
>>170
タイトル指定が面倒な時の裏技みたいなもんだから、ChromeやEdgeがタイトルに含まれてる必要はないよ
173
(2): 2022/08/14(日)09:58 ID:9+drVVHY(1) AAS
>>170
GETIDはタイトルだけじゃなくてクラス名も指定できる
これでChromeとEdgeの識別ができる
クラス名はChromeとEdgeの片方を起動した状態で
GETALLWIN()
FOR win IN ALL_WIN_ID
IF STATUS(win,ST_TITLE) = "ゲーム名" THEN PRINT STATUS(win,ST_CLASS)
NEXT
で取得できる
何をしてるかはヘルプのGETALLWINとSTATUSを読めばわかるとおもう
174
(1): 2022/08/14(日)14:04 ID:1XEnC456(2/2) AAS
>>172
試しにコピペで動作させてみたのですが、クリックは発生しませんでした…
文字コードはUTF8でも構わないのでしょうか?

>>173
仰っていただいたコードで取得してみましたが、両方とも Chrome_WidgetWin_1 で、同じクラス名でした
175: 2022/08/14(日)16:33 ID:C9iCXLwP(2/2) AAS
ブラウザから独立したアプリ以外は閉じるか最小化して、余計なモノを無視するようにすれば出来るかも
テキトウなゲームアプリで試したら出来たし
176
(1): 2022/08/14(日)16:36 ID:h7b2YHtm(1/2) AAS
>>174
>>173の調査で、Chrome_WidgetWin_1 が無事に2個あるなら
どっちかがChromeのIDで、もう一方がEdgeのIDなので

FOR GameWinID = 0 TO RESIZE(ALL_WIN_ID) - 1
IFB ゲームのIDかどうかSTATUS(GameWinID , ST_TITLE)で調べる
ゲームのIDだったら>>168
念のためカウントしてPRINT
ENDIF
NEXT

3個以上なら、ここの判定を改良
省4
177: 2022/08/14(日)16:58 ID:h7b2YHtm(2/2) AAS
>>176
書きわすれ。どこか最初の方で
AllWinID = GETALLWIN() をやっておいて

FOR GameWinID = 0 TO RESIZE(ALL_WIN_ID) - 1 も
FOR GameWinID = 0 TO AllWinID - 1  のほうがわかりやすいかも
178: 2022/08/14(日)17:32 ID:PBIVozZX(1) AAS
初心者スレだからこのゲームのここでこうしたいけど出来ないまで書いちゃえば?
179: 2022/08/15(月)04:20 ID:pm4LQRan(1/2) AAS
>>170
試しにこれを実行してみてほしい

DIM sSearchTitle = INPUT("指定するブラウザのアクティブなタブ表示を入力")
DIM idWnd = getid(sSearchTitle)

DIM sBrowserName = WhatBrowser(idWnd)
MSGBOX("ブラウザは"+sBrowserName)

FUNCTION WhatBrowser(idWnd)
 RESULT = "不明"
 DIM sFullTitle = STATUS(idWnd, ST_TITLE)
 //MSGBOX(sFullTitle)
省14
180: 2022/08/15(月)04:44 ID:pm4LQRan(2/2) AAS
これでの判定があっていれば
>>169のいうとおり
最初からChromeかEdgeか指定して取得できる
表示上ブラウザ名がついていなくても内部的にはたぶんついている
GETID() はタイトルの一部のみで取得できそれが先頭部分である必要もない

もしこれで判定できなければ
外部リンク:plaza.rakuten.co.jp
のように実行EXE名を取得できるのでそれで判定する方法がある
ただChromeでは問題なかったが
Edgeの場合何かのセキュリティが効いているらしくEnumProcessModules()
省1
181
(1): 2022/08/15(月)21:06 ID:RCL1oiri(1/3) AAS
皆さん色々とありがとうございます
これ以上混乱させてはいけないと思うので、やりたい事を具体的に書かせていただきます

放置少女 for ブラウザ というブラウザ版のゲームで、姫プレイという60秒ごとにクリックするコンテンツがあるのですが
2つのアカウントを作業がてら操作するのが煩わしかったので、自動化させたいと思いました
182
(1): 2022/08/15(月)21:54 ID:SCA4T4hb(1) AAS
ブラウザゲームだとウィンドウが裏とかで隠れてるとゲームが止まるってのがありがちだけどそこは問題ないのかと思った
ブラウザのプロファイルを使い分ければchrome2個とかedge2個別アカウントで動かせるからどっちかで動いたらブラウザは1種類にしたほうがいいと思った
183: 2022/08/15(月)22:38 ID:ycFy8B4h(1) AAS
>>182
止まったりしますね
画面が少しでも見えてたら止まらないようなのでウィンドウをずらして表示してますが

>>181みたいなやり方を実現したいなら仮想環境(Vmwareなど)で、いってみれば画面まるごと別にして自動化させる
ブラウザゲームを2つ同時にする程度ならi5-11400とかRyzenの3600あたりで十分だと思いますけどね
184: 2022/08/15(月)22:49 ID:RCL1oiri(2/3) AAS
裏で動作させるために

Chromeの場合
chrome://flags/#calculate-native-win-occlusion を Disabled にする

Edgeの場合
edge://flags/#calculate-native-win-occlusion を Disabled にする

自分の場合はこの方法で対処できています
185: 2022/08/15(月)23:23 ID:RCL1oiri(3/3) AAS
あと、Chromeのプロファイルを2個使うという発想は頭からスッポリ抜け落ちていました
その場合は同じクラス名のウィンドウを同時に操作するにはどう記述すれば良いのでしょうか?
186: 2022/12/01(木)10:20 ID:qs39Q3U2(1/2) AAS
ゲームでマウス右クリック中は ADS できるゲームなんだけど
右クリックをしたら ADS 状態を保持して
右クリックを押したらADS状態を解除するように
するにはどうしたらいいんでしょうか?
187
(1): 2022/12/01(木)12:30 ID:XSZRHDZS(1) AAS
右クリックをしたら→離したら の間違い?
188: 2022/12/01(木)14:45 ID:qs39Q3U2(2/2) AAS
>>187
右クリックを押してはなして ADS 状態ですね
189: 2022/12/01(木)14:59 ID:cYCmqMWp(1) AAS
・右クリックをしたら
・右クリックを押したら
の違いがまったくわからん
190
(1): 2022/12/01(木)18:01 ID:o235ACIC(1) AAS
スイッチでいうところのオルタネイトにしたい話なんでしょ
191
(1): 2022/12/02(金)23:40 ID:cTK2xg+F(1) AAS
>>190
そうですオルタネートにしたいんです
右クリック一回押すと押したままの状態にして
もう1回押すと押した状態を解除する
192: 2022/12/03(土)01:11 ID:iJH6gcoH(1) AAS
>>191
autohotkeyならできますよがんばって下さいね
手が不自由な障害者向けのサンプルコードがあるので参考にできるでしょう
193
(1): 2022/12/03(土)21:53 ID:cDe8HB62(1) AAS
while peekcolor(x,y)=緑
 処理0
...
 処理99
wend

みたいなwhile文だと、処理34をやってるときに赤になっても処理99まで一通りやってから終わらせてしまう
(x,y)が緑じゃなくなった瞬間whileを抜けるにはどしたらええん?
194: 2022/12/03(土)23:59 ID:t90CZNoD(1) AAS
>>193
自分が書いてる通りに
処理xが終わるたびに緑じゃなかったらループを抜けるようにする

それでも希望通りのタイミングじゃなかったら
1行ごとに緑じゃなくなったかどうか調べる
195: 2022/12/04(日)10:47 ID:QSjbkKsr(1) AAS
並行処理をさせたいなら関数書いてTHREADで
196: 2022/12/04(日)13:07 ID:G9jMrbbm(1) AAS
サンキュー
197: 2022/12/04(日)18:15 ID:rqfbFIa7(1) AAS
ま、「瞬間」は無理だな
198: 2022/12/18(日)01:53 ID:OMOd2EpL(1) AAS
THREADって各スレッド間の通信は
グローバル変数を使うしかないのか
199
(1): 2023/01/30(月)13:50 ID:zCM+o/4+(1) AAS
uwscってコピー防止することってできますか?
たとえばuwsc開いたらパスワード要求されてそれ入力しないと使えなくて
なおかつ1か月たつとそのパスワードは使えなくなる方法とか
月額2000円でパスワード買わないと使用できなくなるような方法です
よろしくお願いします!
200: 2023/01/30(月)13:55 ID:xjPPcjmh(1) AAS
自分が書いたとおりに実装すればできるよ
201: 2023/01/30(月)14:35 ID:L0PeZlr4(1) AAS
できねーよ馬鹿
202: 2023/01/30(月)17:58 ID:Qp/n9nNg(1) AAS
できる
203: 2023/01/30(月)20:25 ID:pewbLvtZ(1) AAS
>>199
そんな機能はないが、パスワードを書いたテキストファイルをサーバーにUPして、
起動時にそれを読み込んで入力したパスワードと照合すれば出来るだろ
サーバーに金掛けたく無ければ無料サーバー使っても良い
204: 2023/04/17(月)21:07 ID:fQqMCB5/(1) AAS
数日前からfirefoxでPosACC(id, x, y, ACC_BACK)でテキスト文字を
所得できなくなってしまって困っております。
何か良い方法はないでしょうか・・・
205: 2023/10/04(水)11:05 ID:GGFuvkNr(1/2) AAS
機械語命令のNOPのような何もしない命令はありますか

IF文とかでNOPが書ければ簡単に書けるという事が割とあるので、何とかしたいです
206: 2023/10/04(水)19:05 ID:fsISD3kr(1) AAS
何も書かなければいいだけでは
207
(1): 2023/10/04(水)22:01 ID:GGFuvkNr(2/2) AAS
そうもいかないのです

条件分岐の都合で何も書かない訳にもいかないので、面倒くさいです
208: 2023/10/04(水)22:22 ID:RyohCm2S(1) AAS
>>207
色々調べてみた?
結論から言うとそんな命令はありません
あなたは面倒くさいとストレスMAXにして頑張ってください
209: 2023/10/05(木)01:42 ID:BfJXhjdu(1) AAS
条件分岐でNOPを入れると書きやすいとはどういう例が有るんだ?
210: 2023/10/05(木)20:38 ID:XelVLkj4(1) AAS
無いなら作る

PROCEDURE NOP()
EXIT
FEND
211
(2): 2023/10/15(日)14:37 ID:hEOK4Ev6(1/6) AAS
ちょっと困ったので賢者の皆さん力をかしてくだしあ
外部リンク:imepic.jp
CHKIMGで2パターン処理が必要
一パターン目のCNKIMGからのクリックで見た目が変わるので
次に変わってないものをクリックした後で、一回目クリックしたものを
もう一度クリックしたい。

//一回目
cnt=CHKIMG("audl.bmp",1,,,,,-1,IMG_MSK_BGR2)
for i=1 to cnt
BTN(LEFT,CLICK,ALL_IMG_X[cnt-i]+15,ALL_IMG_Y[cnt-i]+15,20)
省12
212: 2023/10/15(日)14:56 ID:hEOK4Ev6(2/6) AAS
2回目の判定画像と1回目の判定画像は部分的に重なるので、
2回目をやる前に1回目をもう一度クリックするのはダメ
213: 211 2023/10/15(日)15:05 ID:hEOK4Ev6(3/6) AAS
判定用画像
緑と白(と黒)の組み合わせで切り取る
外部リンク:imepic.jp
214
(1): 2023/10/15(日)15:59 ID:OSTpoGeh(1/4) AAS
>>211
テキトウな変数にALL_IMG_X[cnt-i]+15,ALL_IMG_Y[cnt-i]+15の座標を入れれば良い
IMGX=ALL_IMG_X[cnt-i]+15
IMGY=ALL_IMG_Y[cnt-i]+15
215: 2023/10/15(日)22:25 ID:hEOK4Ev6(4/6) AAS
>>214
ですよね・・・・
そうすればいい!と思いついたのですが、エラーでやられちゃって
216
(1): 2023/10/15(日)22:36 ID:OSTpoGeh(2/4) AAS
//一回目クリックしたところを再度クリック
BTN(LEFT,CLICK,IMGX,IMGY,20)

座標が同じならこれでよい
217: 2023/10/15(日)22:40 ID:hEOK4Ev6(5/6) AAS
//一回目
for i=1 to cnt
cntx[i]=ALL_IMG_X[i-1]+15
cnty[i]=ALL_IMG_Y[i-1]+15
next

これで「宣言のない配列です」
だったので適当な変数cntx,cntyを以下のようにしてみたらエラーは出なくなったものの

dim cntx[i]=ALL_IMG_X[i-1]+15
dim cnty[i]=ALL_IMG_y[i-1]+15
(中略)
省10
218
(1): 2023/10/15(日)22:42 ID:hEOK4Ev6(6/6) AAS
>>216
1回目と3回目の座標は同じですが
2回目が異なるのです。
なので1回目の変数を適当な変数に放り込んで、3回目で読めばいい。
はずなんですが・・・ならなくて。
219: 2023/10/15(日)23:24 ID:OSTpoGeh(3/4) AAS
判定用画像
ringo1.png
外部リンク:imepic.jp
ringo2.png
外部リンク:imepic.jp

ChkImgX 1.2.1
外部リンク:hibiarekore.com
220: 2023/10/15(日)23:25 ID:OSTpoGeh(4/4) AAS
CALL ChkImgX.uws // ChkImgX関数をインクルード
startup_chkimgx()

//一回目
cnt = CHKIMGX("ringo1.png",0,0,0,1920,1080,-1,5)
for i=0 to cnt-1
 IMGX=ALL_IMGX_X[i]+15
 IMGY=ALL_IMGX_Y[i]+15
 BTN(LEFT,CLICK,IMGX,IMGY,20)
 SLEEP(1)
next
省9
221: 218 2023/10/16(月)00:20 ID:zyXWWxv7(1/2) AAS
//一回目クリックしたところを再度クリック
これがですね・・・forで書いているように1回目でクリックするのは複数回で、
3回めのforでそれを全部クリックしたい、ということなのです。
伝え方下手くそかよ・・・ごめんなさい・・・

その問題点がこの部分。
>ここで1回目の座標の、なぜか最後の座標がクリックになる。

cntx[i]でfor回るごとに追加にならないの・・・?(´;ω;`)ブワッ

追加関数までありがとうございます。某辞書で見ていたけどスルーしてました。
グレースケールでもいけるのは面白いですね
222
(1): 2023/10/16(月)00:38 ID:51QmPmxN(1) AAS
IMGX、IMGYを配列にして座標を入れれば良い
透過PNGを使って認識させるちょっとした裏技を使ってる

dim IMGX[100],IMGY[100]

//一回目
cnt1 = CHKIMGX("ringo1.png",0,0,0,1920,1080,-1,5)
for i=0 to cnt1-1
 IMGX[i]=ALL_IMGX_X[i]+15
 IMGY[i]=ALL_IMGX_Y[i]+15
 BTN(LEFT,CLICK,IMGX[i],IMGY[i],20)
 SLEEP(1)
省12
223: 2023/10/16(月)01:03 ID:zyXWWxv7(2/2) AAS
>>222
できたーーーー!!
神様ありがとうございます。

>dim IMGX[100],IMGY[100]
これだっ!
これ知らなかったです・・・。

コードもちゃんと動きました。これで今日寝られます。
他お力添えいただいた皆様もありがとうございました!
224: 2023/10/26(木)00:43 ID:A8ieLS5R(1) AAS
スクールでpythonを学習する機会があって調べたらモジュール化してUWSCに似た感じに出来る方法がわかったので
練習と学習がてらにpythonへ移植してるけどモジュール化してるとはいえかなり冗長な内容になってる
UWSCがいかに優れてるかよくわかるなぁ
もちろん使いこなせたらpythonの方が上だろうけどまだ初心者にとってはUWSCの方が使い勝手いいと思わせられる
225: 2023/10/28(土)07:50 ID:EUUOZvyM(1) AAS
説明下手か
226: 2023/12/09(土)03:19 ID:Z3iPlD7J(1) AAS
スマホゲームの自動操作はAndroidエミュをUWSCで操作するのが王道なの?それとも直接何かのプログラムでデータサーバーにアクセスして操作したりするものなの?
227: 2023/12/09(土)09:20 ID:/zdDQSm/(1) AAS
王道は知らない
データサーバーと直接通信できるゲームは多分ない
中継サーバーと直接通信するのは即BAN対象
uwscで操作も大抵はBAN対象
228: 2023/12/09(土)15:45 ID:0drD1kgT(1) AAS
エミュを操作するUWSCを検出するのは困難だろうが
エミュレータ自体が締め出されるんじゃないの
229
(1): 2023/12/09(土)22:49 ID:GUVJgzLn(1) AAS
BANにならないように人間の操作のように偽装する
230: 2023/12/09(土)23:14 ID:le18kSUd(1/2) AAS
>>229
クリック場所や時間にランダム入れるのは
一番初めにやることだよね
231
(1): 2023/12/09(土)23:24 ID:YsGnRVwU(1) AAS
それって周回作業する場合は1時間とかで切り上げるってこと?
24時間回すとかどう考えても手動じゃないし
232: 2023/12/09(土)23:34 ID:le18kSUd(2/2) AAS
>>231
無料で24時間何かしら回すものがあるような糞仕様しか作れない会社は
取り締まり能力も低いから
課金者をぶっちぎってランキング1位とか目立たない限り大丈夫
無課金で目立ったら証拠とか関係なしにBANされる
向こうも商売だからな

スタミナとか消費するものを課金で無限に購入して回すのはやったことないから知らん
233: 2023/12/10(日)04:15 ID:hMPwmZDp(1) AAS
同じスマホゲームのアカウントを6個作って
NOX6個同時起動させてUWSCで延々と周回させて遊んでいた
運営に怪しまれないように同アカウントで連続操作を避けて回し続けた
面白過ぎて夢中になった
234: 2023/12/11(月)23:42 ID:avB0hnze(1) AAS
作るのむずかしいですな
235: 2023/12/17(日)08:10 ID:MJgKP6eI(1) AAS
nox playerでスマホゲームやってます。
標準でマクロ機能もあるんですが
UWSCはそれより条件を細かく設定できるイメージかな?

pc上でnoxの表示箇所や幅を変更しても
そのまま対応してくれるのでしょうか?
236: 2023/12/17(日)08:24 ID:jVq4jP47(1) AAS
対応した書き方してればそうなるんじゃないの
237: 2024/01/25(木)14:02 ID:kDxprDQf(1) AAS
Citraに仮想キーコード送っても無反応なのよな
238: 2024/01/25(木)14:52 ID:kASAECz9(1) AAS
Citraはしらんけど、CLKITEMで仮想キーコード送っても無反応で、SCKEYなら送れた事がある
239: 2024/03/17(日)00:34 ID:cgpZaJMI(1) AAS
テスト
240: 2024/03/25(月)20:14 ID:/ucuOakA(1) AAS
Windows11にしたらChkImgXが使えなくなってしまった
Windows11で画像を撮り直してみましたが、マッチしません
どのような原因が考えられますか?
241
(1): 2024/03/25(月)22:31 ID:YEA7vJ+7(1) AAS
OSには依存しないので、ChkImgXのエラーが出てないなら書き方が悪いとしか
画像もOSによって認識が変わることも無い

そもそもどう書いて、どういうエラーが出てるかも分からないのにエスパー解答しろというのもな〜
242: 2024/03/26(火)02:15 ID:egQmjIwx(1/2) AAS
>>241
おま環で自分の環境が悪いだけなのかもしれない
問題の切り分けのために試していただけるとありがたいです

・sample.uws(付属のサンプルを少し修正したもの)
---------------------------------------
CALL ChkImgX.uws

startup_chkimgx()

// 画像サイズを取得
dim w, h
imagesize("sample.png", w, h)
省16
243: 2024/03/26(火)02:16 ID:egQmjIwx(2/2) AAS
規定のブラウザはChromeです

・sample.png
画像リンク[png]:i.imgur.com
(5chのトップ画面のスクリーンショットから、画像リンク[png]:5ch.net の一部を切り取り)

■Windows7
・結果
トップ画面の画像(画像リンク[png]:5ch.net の縮小表示画像)をクリックして、外部リンク:5ch.net を開く

・print
---------------------------------------
画像 幅:56px,高さ:47px
省10
244
(1): 2024/03/26(火)15:18 ID:CdpUPxZi(1/2) AAS
//とりあえず、ChkImgX.uwsの簡易テスト
//画像を保存してその画像を認識できればOKと表示する

CALL ChkImgX.uws

startup_chkimgx()

SAVEIMG("test.bmp",0,100,100,100,100,TRUE)

IFB ChkImgX("test.bmp");msgbox("OK");ENDIF
省1
245: 2024/03/26(火)15:53 ID:CdpUPxZi(2/2) AAS
難しく考えないで、簡単に書けば良いんだよ
とりあえず、これでクリック出来た

CALL ChkImgX.uws

startup_chkimgx()

doscmd("start 外部リンク:5ch.net
sleep(3)
id = getid(GET_ACTIVE_WIN)
ACW(id,0,0,1400,1000)
sleep(2)
IFB ChkImgX("sample.png");BTN(LEFT,CLICK,G_IMGX_X+5, G_IMGX_Y+5);ENDIF
省1
246: 2024/05/13(月)07:07 ID:y8uK9t53(1) AAS
テスト
247: 2024/06/26(水)15:13 ID:YSRdGTY0(1) AAS
MOUSEORGでバックグラウンドで操作させる場合はwindows11でも問題なく使えますか
windows10では使えないとか認識しないとかの情報が多く出てくるし・・・
windows10で使えないならwindows11では使えない?
248: 2024/06/26(水)16:21 ID:+on48JBe(1) AAS
使えてないね
だから自分はVmwareで仮想環境を作ってそっちで動かしてる
結果的にバッググラウンドと同じになる
まあマシンパワーがそれなりに必要
249: 2024/06/26(水)17:39 ID:PWGnqKY3(1) AAS
windows11で普通にMOUSEORG使えてる
250: 2024/06/27(木)10:23 ID:7WsF8CHO(1) AAS
Vmwareで仮想環境も出来なくないけど、windows11で使えなかったから互換性の問題だと思って、
C:\Program Files (x86)\UWSCフォルダ内のUWSC.exeを互換性モードでWindows7に設定したら使えた
251: 2024/06/30(日)11:46 ID:y5VWXF+a(1) AAS
MOUSEORGとCHKIMGXの連携の仕方がググってもあまり出てこない
出てこないという事はあまりやってる人がいないのか?
少し実験してみるか
252: 2024/07/08(月)14:41 ID:Y7cmYXRS(1) AAS
win11の実機でMOUSEORGが使えなかったけど、Microsoftが提供してる仮想環境でなら使えた
エディションの違いで使える、使えないとかあるんかな?
Enterpriseでなら使えるとか?

developer.microsoft.com/en-us/windows/downloads/virtual-machines/
253: 2024/07/08(月)14:49 ID:vUkURbA4(1) AAS
使えてたコードが急に使えなくなって数か月後にまた使えるようになったりと原因追う気もならない状況だからeditionとかの話ではないよ
254
(1): 2024/08/03(土)15:18 ID:yEd9ZQI5(1/5) AAS
画像をいちばんあいまい検索したい場合、以下であってるよね?
chkimg("画像A.bmp",-1,,,,,,IMG_MSK_BGR4)
255
(1): 2024/08/03(土)16:22 ID:LupLAawb(1) AAS
>>254
yes, thats right. i know you can do it!
256: 2024/08/03(土)17:26 ID:9urEeuWC(1/4) AAS
CHKIMGXを使ったほうがあ良いかな
257: 2024/08/03(土)17:28 ID:+x6BLK1H(1/2) AAS
chkimgのあいまいって色の違いだけじゃないの?
258: 2024/08/03(土)20:07 ID:yEd9ZQI5(2/5) AAS
>>255
thanks

ChkimgXなんか動かないんだよねえ
259: 2024/08/03(土)20:19 ID:+x6BLK1H(2/2) AAS
windows11でも動いてるからなんか間違ってるんじゃないの
使い方かファイルが足りないか
260: 2024/08/03(土)20:39 ID:9urEeuWC(2/4) AAS
動かないと思った時は大概書き方を間違えてる
261: 2024/08/03(土)21:29 ID:Y2mH6eig(1) AAS
ちょっと上のレスにChkimgXを使ったコードがある
262: 2024/08/03(土)21:53 ID:yEd9ZQI5(3/5) AAS
>>244
これはOK出たわ
ってことは自分のソースがおかしいな
263: 2024/08/03(土)22:34 ID:yEd9ZQI5(4/5) AAS
動いた動いた。でもCHKIMGのほうが速くない?

質問なんだが、↓のようにwhileの中にIFB文をひたすら書いてて、30個くらいIFB文があるんだが
もっと賢い方法ないかな?30個は全部違う画像です。

while (!getkeystate(VK_SHIFT))
IFB chkimgx("a.bmp",0,x1,y1,x2,y2,0,5,-1)
BTN(LEFT,CLICK,G_IMGX_X+random(20),G_IMGX_Y+random(20))
ENDIF
IFB chkimgx("b.bmp",0,x1,y1,x2,y2,0,5,-1)
BTN(LEFT,CLICK,G_IMGX_X+random(20),G_IMGX_Y+random(20))
ENDIF
省7
264
(1): 2024/08/03(土)22:59 ID:9urEeuWC(3/4) AAS
ChkImgX.uwsに書いてあるけど

// 以下のファイル名規則に沿ったファイルを置くことで複数のテンプレート画像とマッチング判定させることが可能
// 規則: "test.png"と指定した場合 "test.png" と "test.n.png" (nは任意の自然数)の全てのファイルをパターン画像として用いる
// マッチした画像の番号は G_IMGX_NUM に格納。例えば "test.2.png"にマッチした場合は 2, "test.png"の場合は -1 が格納される

test.0.bmp,test.1.bmp,test.2.bmp,test.3.bmp,test.4.bmp....の形式でファイル名を付ければ

while (!getkeystate(VK_SHIFT))
IFB chkimgx("test.bmp",0,x1,y1,x2,y2,0,5,-1)
BTN(LEFT,CLICK,G_IMGX_X+random(20),G_IMGX_Y+random(20))
ENDIF
wend
省1
265: 2024/08/03(土)23:33 ID:yEd9ZQI5(5/5) AAS
>>264
なるほど、やってみた
画像総なめするからクソ遅くて話にならんかったw
266: 2024/08/03(土)23:56 ID:9urEeuWC(4/4) AAS
ChkImgXは指定された連番のファイルを全て読み込んで処理するから、
サイズのデカいbmp画像を多く読み込むと遅くなる
JPEGファイルに変換すると約10%くらいに圧縮できるから早くなるかもしれない
267: 2024/08/15(木)03:29 ID:kn1YUiXr(1) AAS
ソフトって1回起動するとレジストリに何か追加している?
追加していたらその場所を教えて欲しい
268
(1): 2024/08/15(木)03:57 ID:zohWINrn(1/2) AAS
レジストリエディタ開いてUWSCで検索すれば良いと思うよ。
ファイルの関連付け関係とインストールデータ関連がレジストリで
設定はiniファイルでだと思う
269: 2024/08/15(木)05:14 ID:lXb9vS63(1) AAS
>>268
起動させてもWindowとして出てこないんだけど
タスクバーとかアイコン状態で実行されてしまう
小さいWindow状態に出す方法ってある?
270: 2024/08/15(木)07:39 ID:zohWINrn(2/2) AAS
タスクバーにアイコンが表示されてる状態でもう一回UWSC.exeを起動する
271
(1): 2024/08/15(木)08:01 ID:zhwzLtv2(1) AAS
もしくはタスクバーにアイコンがある状態でそのアイコンを右クリックして「トレイから出す」でもいいよ
272: 2024/08/15(木)14:09 ID:+gRGjTym(1) AAS
>>271
こっちの手順はやったことあるんだけど
何回やってもタスクトレイから出ないんだよね
PC が3台あって1台だけタスクトレイから
出てくれるんだけど何が違うのかわからん
273: 2024/08/15(木)16:49 ID:Ko0oDGRi(1/2) AAS
\AppData\Roaming\UWSC にあるUWSC.INIを
TaskTrayStart=1
にするとタスクトレイから出せる
274
(1): 2024/08/15(木)17:39 ID:Ko0oDGRi(2/2) AAS
TaskTrayStart=1でなく、TaskTrayStart=0だったわ
275: 2024/08/15(木)20:11 ID:5LwD5C2Q(1) AAS
>>274
タスクトレイゼロだった
マジで助かった!
276: 2024/12/08(日)11:05 ID:YUFFZ9S6(1) AAS
sage
277
(1): 2024/12/22(日)05:05 ID:A06FD57i(1) AAS
scrcpyでChkImgX使うと画像認識自体はしてくれるんですがクリックする座標が全く意味のわからない場所になります・・・
どうすればいいのでしょうか・・・
実際の画像の場所に関係なく、取得されているのは必ず1400,10のような座標になります
278: 2024/12/22(日)10:52 ID:82glRy1K(1) AAS
scrcpyとは相性が悪いかもしれないのでNox使ってる
279: 2024/12/22(日)20:19 ID:6B40YU5o(1) AAS
>>277
画像認識された数はいくつなの?
画像認識される対象は、必ず1つではなくて、範囲指定した領域全て調査するから複数ヒットしてる可能性がある

変な座標が返されるのは複数ヒットしたうちの1つだから自分の考えている座標と異なる=変な座標 となる。
280: 2024/12/22(日)22:12 ID:9zZKplFh(1) AAS
調査するのは必ず左上からだから、その1400,10に最初の画像があるんだろうね
281
(1): 07/23(水)13:00 ID:g7reM0J8(1/2) AAS
While True
KBD(VK_ESC,CLICK,5000)
Wend

これで「5秒毎にEscキーを押す」という動作になりますが

これを
特定のブラウザがアクティブになっているときのみ動き
タスクバーなどにしまわれている間は動かない

といったことをやるにはどうしたらいいんでしょう?
282: 07/23(水)14:54 ID:ktIA1NF+(1) AAS
たぶん、もっと良い方法がありそうだけど、今思いつくのは

targetID = GETID("Google Chrome","Chrome_WidgetWin_1")
とかやってtargetID にそのウィンドウのIDを覚えておいて、

タイマーで回しながら

activeWindowID = GETID(GET_ACTIVE_WIN)  
でアクティブになってるウィンドウのIDを調べて、これがtargetID と同じだったら
そのウィンドウにESCキーのイベントを送れば良いんじゃないかな。

付属の uwsc.chm とか ここ 外部リンク:uwsc.jp を眺め回して
ウィンドウ状態の変化のイベントを取る方法があったらタイマーを回さないもっとスッキリしたものが出来るかも。
283: 07/23(水)18:19 ID:g7reM0J8(2/2) AAS
う~ん
なんだか難しそうですね
でも教えていただきありがとうございました
284: 07/24(木)21:32 ID:lwZ3AmUb(1) AAS
>>281
アクティブってことは見えてるんだから
必ず見えてる部分の画像検索すればいいと思う
左上の方にあるアイコンとか
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.970s*