UWSC初心者用スレ2 (285レス)
上下前次1-新
152: 2022/07/30(土)21:13 ID:8Mquypwa(1) AAS
tester
153: 2022/07/31(日)23:15 ID:LmtiMMax(1) AAS
testest
154(1): 2022/08/06(土)11:49 ID:Jq43FlU6(1/2) AAS
オンラインゲームでマーケットにアイテムが出品された瞬間に購入するbotを作る場合
uwscとpythonどちらのほうが早く購入することができますか?
155: 2022/08/06(土)12:52 ID:+9Ajl8XK(1) AAS
不定
156(1): 2022/08/06(土)13:52 ID:3XvgAeC8(1) AAS
>>154
そんなのBANせれて終わりだろ
出品されたか確認の為に頻繁に問い合わせしたら即バレるわ
157: 2022/08/06(土)17:37 ID:Jq43FlU6(2/2) AAS
>>156
それはそうかもしれませんが、単純に速さはどちらが上ですか?
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
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(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
これを実行中に画像Aが表示されたらそれをクリックして再開するにはどうすればいいですか。
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
next
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)
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 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個以上なら、ここの判定を改良
IFB ゲームのIDかどうかSTATUS(GameWinID , ST_TITLE)で調べる
STATUS(ID, ST_PATH) // EXEのパスを返す
STATUS(ID, ST_PARENT) // 親ウィンドウのIDを返す、親が無ければ-1
などと組み合わせて
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)
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
180: 2022/08/15(月)04:44 ID:pm4LQRan(2/2) AAS
これでの判定があっていれば
>>169のいうとおり
最初からChromeかEdgeか指定して取得できる
表示上ブラウザ名がついていなくても内部的にはたぶんついている
GETID() はタイトルの一部のみで取得できそれが先頭部分である必要もない
もしこれで判定できなければ
外部リンク:plaza.rakuten.co.jp
のように実行EXE名を取得できるのでそれで判定する方法がある
ただChromeでは問題なかったが
Edgeの場合何かのセキュリティが効いているらしくEnumProcessModules()
がエラーになった
181(1): 2022/08/15(月)21:06 ID:RCL1oiri(1/3) AAS
皆さん色々とありがとうございます
これ以上混乱させてはいけないと思うので、やりたい事を具体的に書かせていただきます
放置少女 for ブラウザ というブラウザ版のゲームで、姫プレイという60秒ごとにクリックするコンテンツがあるのですが
2つのアカウントを作業がてら操作するのが煩わしかったので、自動化させたいと思いました
上下前次1-新書関写板覧索設栞歴
あと 104 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.013s