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/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

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

集まれスレで返答貰ったので〆ます✨
2022/07/29(金) 16:42:17.83ID:so2b8qwX
test
2022/07/30(土) 21:13:43.61ID:8Mquypwa
tester
2022/07/31(日) 23:15:10.36ID:LmtiMMax
testest
154デフォルトの名無しさん
垢版 |
2022/08/06(土) 11:49:04.93ID:Jq43FlU6
オンラインゲームでマーケットにアイテムが出品された瞬間に購入するbotを作る場合
uwscとpythonどちらのほうが早く購入することができますか?
2022/08/06(土) 12:52:24.92ID:+9Ajl8XK
不定
2022/08/06(土) 13:52:07.75ID:3XvgAeC8
>>154
そんなのBANせれて終わりだろ
出品されたか確認の為に頻繁に問い合わせしたら即バレるわ
157デフォルトの名無しさん
垢版 |
2022/08/06(土) 17:37:43.29ID:Jq43FlU6
>>156
それはそうかもしれませんが、単純に速さはどちらが上ですか?
2022/08/08(月) 14:21:58.10ID:A57pDOpl
同じウィンドウ名とクラス名のブラウザアプリ(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
cnt = cnt + 1
IFB cnt = n THEN
RESULT = ID
EXIT
ENDIF
ENDIF
NEXT
IF n = 0 THEN RESULT = cnt
FEND

FOR i = 1 TO ("ゲーム名", "Chrome_RenderWidgetHostHWND", 0)
mouseorg(i, 2, MORG_BACK)
BTN(LEFT, CLICK, 319, 474)
NEXT
159デフォルトの名無しさん
垢版 |
2022/08/09(火) 20:42:54.77ID:WTH4cAqy
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

これを実行中に画像Aが表示されたらそれをクリックして再開するにはどうすればいいですか。
2022/08/10(水) 21:46:14.83ID:zuCuX6KX
>>159
画像があればクリックするという関数をつくって
それをBTN()とBTN()の間で呼ぶようにすればいい

THREAD()を使ったりするとクリックの競合が
発生しないように制御しなければならなくなるので
こちらのほうが素直
2022/08/11(木) 13:41:16.86ID:UtolBXHt
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

next
162デフォルトの名無しさん
垢版 |
2022/08/12(金) 14:38:28.84ID:m6+pfbJk
>>160
BTN()が100以上など数が多い場合も間で呼ぶしかないのでしょうか。

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

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

For i = 1 to 100

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

next



PROCEDURE HOGE1(x, y)

BTN(LEFT,CLICK,x,y,0)
sleep(5)
IFB CHKIMG("画像A.bmp");BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5,0);ENDIF

FEND
164デフォルトの名無しさん
垢版 |
2022/08/13(土) 16:39:49.84ID:p1KZrIM2
>>163
ありがとうございます。
試してみます。
165158
垢版 |
2022/08/13(土) 18:04:03.85ID:NorQZddu
すみません、どなたか教えていただけませんか…
2022/08/13(土) 19:43:14.34ID:KPz0o6R8
>>165
ChromeあるいはEdgeのどちらか単体で裏クリックはできてますか?
それができればあとはさほど難しくないです
2022/08/13(土) 20:59:01.69ID:P4IK+cir
>>165
ChromeとEdgeでBTN(LEFT, CLICK, 319, 474)ができれば良いのか?
2022/08/13(土) 23:00:56.01ID:NorQZddu
>>166
解説しているサイトから拾ってきた以下のコードで裏クリックできることは確認できました

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

BTN(LEFT, CLICK, 319, 474)

MouseOrg(0)



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

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)
2022/08/14(日) 00:19:06.35ID:1XEnC456
>>169
ごめんなさい、説明不足でした
そのブラウザゲームというのが、ブラウザから独立したアプリ?のような扱いになっているので、
タイトル名にChromeやEdgeといった文字が含まれておらず、ゲーム名だけなのです
2022/08/14(日) 01:05:25.29ID:wZs9w9Jg
>>158のソースはgetid2を呼んでるのかと呼んでるなら引数のn=0が仕事してなさそうな気がするけどその辺は正しいの?
2022/08/14(日) 09:26:56.54ID:C9iCXLwP
>>170
タイトル指定が面倒な時の裏技みたいなもんだから、ChromeやEdgeがタイトルに含まれてる必要はないよ
2022/08/14(日) 09:58:46.13ID:9+drVVHY
>>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を読めばわかるとおもう
2022/08/14(日) 14:04:02.28ID:1XEnC456
>>172
試しにコピペで動作させてみたのですが、クリックは発生しませんでした…
文字コードはUTF8でも構わないのでしょうか?

>>173
仰っていただいたコードで取得してみましたが、両方とも Chrome_WidgetWin_1 で、同じクラス名でした
2022/08/14(日) 16:33:04.96ID:C9iCXLwP
ブラウザから独立したアプリ以外は閉じるか最小化して、余計なモノを無視するようにすれば出来るかも
テキトウなゲームアプリで試したら出来たし
2022/08/14(日) 16:36:00.95ID:h7b2YHtm
>>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個以上なら、ここの判定を改良
IFB ゲームのIDかどうかSTATUS(GameWinID , ST_TITLE)で調べる

STATUS(ID, ST_PATH) // EXEのパスを返す 
STATUS(ID, ST_PARENT) // 親ウィンドウのIDを返す、親が無ければ-1
などと組み合わせて
2022/08/14(日) 16:58:30.77ID:h7b2YHtm
>>176
書きわすれ。どこか最初の方で
AllWinID = GETALLWIN() をやっておいて

FOR GameWinID = 0 TO RESIZE(ALL_WIN_ID) - 1 も
FOR GameWinID = 0 TO AllWinID - 1  のほうがわかりやすいかも
2022/08/14(日) 17:32:57.22ID:PBIVozZX
初心者スレだからこのゲームのここでこうしたいけど出来ないまで書いちゃえば?
2022/08/15(月) 04:20:46.46ID:pm4LQRan
>>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)
 INPUT("ウィンドウのフルタイトル", sFullTitle )
 IFB POS( " - Google Chrome", sFullTitle) THEN
  RESULT = "Chrome"
 ELSEIF POS( " - Chromium", sFullTitle) THEN
  RESULT = "Chromium"
// ELSEIF POS( " - Microsoft​ Edge", sFullTitle) THEN
  // Microsoftの後ろはゼロ幅スペース: U+200Bに続いて通常のスペース
  // UTF-8 保存でなら使用できる
 ELSEIF POS( " - Microsoft", sFullTitle) AND POS(" Edge", sFullTitle) THEN
  RESULT = "Edge"
 ELSEIF POS( " - Vivaldi", sFullTitle) THEN
  RESULT = "Vivaldi"
 ENDIF
FEND
2022/08/15(月) 04:44:39.65ID:pm4LQRan
これでの判定があっていれば
>>169のいうとおり
最初からChromeかEdgeか指定して取得できる
表示上ブラウザ名がついていなくても内部的にはたぶんついている
GETID() はタイトルの一部のみで取得できそれが先頭部分である必要もない

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

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

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

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

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

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

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

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

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

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

PROCEDURE NOP()
EXIT
FEND
211デフォルトの名無しさん
垢版 |
2023/10/15(日) 14:37:36.28ID:hEOK4Ev6
ちょっと困ったので賢者の皆さん力をかしてくだしあ
https://imepic.jp/20231015/526320
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)
next
//二回目
no=CHKIMG("audl2.bmp",,,,,,-1,IMG_MSK_BGR2)
for i=1 to no
BTN(LEFT,CLICK,ALL_IMG_X[no-i]+15,ALL_IMG_Y[no-i]+15,20)
next
//一回目クリックしたところを再度クリック
for i=1 to cnt
BTN(LEFT,CLICK,ALL_IMG_X[cnt-i]+15,ALL_IMG_Y[cnt-i]+15,20)
next

最後のfor文ですがクリックするのは「2回目」のALL_IMG_X[no-i]+15になる
1回目の結果を変数にいれてしまえ!と思ったのですが入らない・・・エラー・・・
2023/10/15(日) 14:56:12.29ID:hEOK4Ev6
2回目の判定画像と1回目の判定画像は部分的に重なるので、
2回目をやる前に1回目をもう一度クリックするのはダメ
213211
垢版 |
2023/10/15(日) 15:05:11.85ID:hEOK4Ev6
判定用画像
緑と白(と黒)の組み合わせで切り取る
https://imepic.jp/20231015/542220
2023/10/15(日) 15:59:43.35ID:OSTpoGeh
>>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
2023/10/15(日) 22:25:52.63ID:hEOK4Ev6
>>214
ですよね・・・・
そうすればいい!と思いついたのですが、エラーでやられちゃって
2023/10/15(日) 22:36:56.26ID:OSTpoGeh
//一回目クリックしたところを再度クリック
BTN(LEFT,CLICK,IMGX,IMGY,20)

座標が同じならこれでよい
217デフォルトの名無しさん
垢版 |
2023/10/15(日) 22:40:47.45ID:hEOK4Ev6
//一回目
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
(中略)
//三回目
for i=1 to cnt
BTN(LEFT,CLICK,cntx[0],cnty[0],20)
next
ここで1回目の座標の、なぜか最後の座標がクリックになる。
cntx[i]では「定義が間違っています」になり、
for i=1 to cnt
print cnty[i]
next
で中身見てみたら真っ白で、取得したやつどこやった!!っていう状態に(汗
218デフォルトの名無しさん
垢版 |
2023/10/15(日) 22:42:58.76ID:hEOK4Ev6
>>216
1回目と3回目の座標は同じですが
2回目が異なるのです。
なので1回目の変数を適当な変数に放り込んで、3回目で読めばいい。
はずなんですが・・・ならなくて。
2023/10/15(日) 23:24:59.84ID:OSTpoGeh
判定用画像
ringo1.png
https://imepic.jp/20231015/838940
ringo2.png
https://imepic.jp/20231015/838941

ChkImgX 1.2.1
https://hibiarekore.com/archives/38
2023/10/15(日) 23:25:18.59ID:OSTpoGeh
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

//二回目
cnt = CHKIMGX("ringo2.png",0,0,0,1920,1080,-1,5)
for i=0 to cnt-1
 BTN(LEFT,CLICK,ALL_IMGX_X[i]+15,ALL_IMGX_Y[i]+15,20)
 SLEEP(1)
next

//一回目クリックしたところを再度クリック
BTN(LEFT,CLICK,IMGX,IMGY,20)


shutdown_chkimgx()
221218
垢版 |
2023/10/16(月) 00:20:16.60ID:zyXWWxv7
//一回目クリックしたところを再度クリック
これがですね・・・forで書いているように1回目でクリックするのは複数回で、
3回めのforでそれを全部クリックしたい、ということなのです。
伝え方下手くそかよ・・・ごめんなさい・・・

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

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

追加関数までありがとうございます。某辞書で見ていたけどスルーしてました。
グレースケールでもいけるのは面白いですね
2023/10/16(月) 00:38:26.95ID:51QmPmxN
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)
next

//二回目
cnt2 = CHKIMGX("ringo2.png",0,0,0,1920,1080,-1,5)
for i=0 to cnt2-1
 BTN(LEFT,CLICK,ALL_IMGX_X[i]+15,ALL_IMGX_Y[i]+15,20)
 SLEEP(1)
next

//一回目クリックしたところを再度クリック

for i=0 to cnt1-1
 BTN(LEFT,CLICK,IMGX[i],IMGY[i],20)
 SLEEP(1)
next
2023/10/16(月) 01:03:38.57ID:zyXWWxv7
>>222
できたーーーー!!
神様ありがとうございます。

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

コードもちゃんと動きました。これで今日寝られます。
他お力添えいただいた皆様もありがとうございました!
2023/10/26(木) 00:43:45.17ID:A8ieLS5R
スクールでpythonを学習する機会があって調べたらモジュール化してUWSCに似た感じに出来る方法がわかったので
練習と学習がてらにpythonへ移植してるけどモジュール化してるとはいえかなり冗長な内容になってる
UWSCがいかに優れてるかよくわかるなぁ
もちろん使いこなせたらpythonの方が上だろうけどまだ初心者にとってはUWSCの方が使い勝手いいと思わせられる
2023/10/28(土) 07:50:27.37ID:EUUOZvyM
説明下手か
226デフォルトの名無しさん
垢版 |
2023/12/09(土) 03:19:30.30ID:Z3iPlD7J
スマホゲームの自動操作はAndroidエミュをUWSCで操作するのが王道なの?それとも直接何かのプログラムでデータサーバーにアクセスして操作したりするものなの?
2023/12/09(土) 09:20:38.27ID:/zdDQSm/
王道は知らない
データサーバーと直接通信できるゲームは多分ない
中継サーバーと直接通信するのは即BAN対象
uwscで操作も大抵はBAN対象
2023/12/09(土) 15:45:28.46ID:0drD1kgT
エミュを操作するUWSCを検出するのは困難だろうが
エミュレータ自体が締め出されるんじゃないの
レスを投稿する

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

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