UWSC初心者用スレ2 (286レス)
上下前次1-新
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つのアカウントを作業がてら操作するのが煩わしかったので、自動化させたいと思いました
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
自分が書いたとおりに実装すればできるよ
上下前次1-新書関写板覧索設栞歴
あと 86 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.017s