1 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:13:49.92 ID:an35jPjo.net] UWSC初心者用スレです わかってる人はこっち 自動化ツールUWSC使いよ集まれ21 egg.5ch.net/test/read.cgi/software/1533818531/ 降臨される神々においては相手を人と思わず猿と思し召されるよう 何卒お願い申し上げます
152 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 17:04:30.02 ID:+ZNV2ej4.net] >>143 「条件を満たしたらループから抜ける」 なんてーのは基礎中の基礎以前にら自力でも考え付くだろ わからなきゃこのワード+uwscでググれば答えが出てたぞ。まじめに調べてないだろお前
153 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 19:43:37.32 ID:XkF2k9TP.net] 正常性バイアスというか、それなりに動くものが一度出来ちゃうとそれに固執しちゃうのは初心者っぽくはある たぶんもっと簡単に抜ける条件があるのに回数(しかも不定とかイミフ)に囚われすぎ
154 名前:デフォルトの名無しさん mailto:さs [2018/11/19(月) 20:19:06.74 ID:Bnz7GW+k.net] >>146 回数のほかに理想としてるのは時間ですね >>36 は私なのですが start = gettime() While gettime() - start < 10 if chkimg("gazou",0,,,,,,IMG_MSK_BGR4) BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y) break endif WEND >>37 さんに教えてもらったこのスクリプト物凄く助かりました。 今現在も利用させてもらっています。 これは10秒の間に画像が見つからなければ次の行動に向かわせるマクロなのですが 目的のはenterを10秒間連続で押しても画像が見つからなければ 次の行動に向かうでも目的は達成できますね。 画像が見つかった場合どうしてもそれ様のスクリプトをスタートしないといけないんですよね なので1秒ずつコレを作ってもまたenterを押してしまって 説明が下手ですみません if 画像 見つかったときの処理 else エンター endif を10個用意して試してちょっとおしいって感じだったんですけど結局途中でエンターをずっと連打 してしまうんですよね でもこれでも別の目的のマクロでは使えてるので凄く助かっているのでuwscと 5ちゃんねるには感謝しています。
155 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 21:05:53.38 ID:+ZNV2ej4.net] >>147 いったい何のゲームのマクロなんだ?w 有名なMMOの自動戦闘マクロなら結構作ったが、ひとつひとつ手順をつぶしていけばいつのまにか出来てるぞ 索敵してタゲった場合にゲージが出るゲームなら、それをpeekcolorでチェックしたほうが速くて確実 それと、見つかったら発見フラグを立てて、それが存在するときは「エンター動作」とやらをしなけりゃいいだけじゃないのか
156 名前:デフォルトの名無しさん mailto:さ [2018/11/19(月) 21:21:32.06 ID:Bnz7GW+k.net] >>148 すみませんゲーム名はさすがに伏せさせてください 戦闘は一通り作れたのですがもっと手を入れたいのはいわゆる生産系と特殊な行動ですね ある程度ゲーム内通貨を稼げる生産系マクロも作れたのですがあるものにどうしても特殊な動きが必要でさきほどの内容を聞きました
157 名前: わからなくても特別困ってはないのですがわかればもっと便利になるといった感じです。 [] [ここ壊れてます]
158 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 16:57:13.35 ID:Idcs0zEb.net] 見つかるまで回す処理にwhile 変数 = falseって形でフラグ使ってるけど変数増えすぎて面倒になってきた 見つかるまで繰り返す処理を実現したい
159 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 17:15:39.42 ID:A7QyS99w.net] while !chkimg("a.bmp")とか
160 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 17:41:08.13 ID:WARGIWsC.net] ゲームだとカウンタを使うことも多いので、結果的にフラグと同等のものが存在することが多い ので、それで判別しちゃうとか
161 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 18:12:22.90 ID:R5CLMRXS.net] while true if chkimg(略) breake 見つかるまで繰り返す処理 skeep(1) wend 超適当だけどこういうのじゃいかんの?
162 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 20:33:04.38 ID:cYYMBbSe.net] チェックが複雑になるならメソッドで切り出すのがいいかと while checker(...) exec(...) sleep(1) wend
163 名前:デフォルトの名無しさん mailto:sage [2018/11/23(金) 13:16:42.45 ID:WWSF1RwR.net] >>151 と>>153 のやり方が簡単に取り入れられ便利でした!ありがとうございました!
164 名前:デフォルトの名無しさん mailto:あ [2018/12/01(土) 14:30:51.62 ID:mlx9p/i1.net] 以前質問した>>137 ですが t1=GETTIME() WHILE ((GETTIME()-t1)<3) IF ((CHKIMG("gazou",0,,,,,,IMG_MSK_BGR4) =TRUE)) THEN BREAK KBD(VK_enter) SLEEP(0.7) WEND でついさっき解決しました お騒がせしました もしわからない方がいたら参考にしてください
165 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 16:43:58.50 ID:03mmxMXD.net] =TRUEいらねーよ、ほんと何一つ身につかない奴だな…
166 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 16:55:12.78 ID:0p3QcmHs.net] こんなゴミコードは参考にしたらあかんで
167 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 17:03:05.49 ID:GMnbtXEB.net] こんなものに半月かかったのか… よくこの有様で参考にしてくれとか言えるもんだな
168 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 19:53:18.31 ID:sZ8MPu8b.net] まぁuwscの初心者スレだしいいんじゃね 普通ならpythonでChrome操作するし
169 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 19:56:00.80 ID:sZ8MPu8b.net] Chromeの話してるの別のuwscスレだったわw
170 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 20:02:22.73 ID:jvJ8ZaHQ.net] これはもう初心者とか言うレベルじゃねーわ 初心者でもまともな人間ならもう少しオツム使って考えるわ
171 名前:デフォルトの名無しさん mailto:sage [2018/12/01(土) 21:36:21.31 ID:WGIeQzk8.net] ソフト板から流れてきた普段プログラムなんか書かない奴のリテラシーはこんなもんじゃないの
172 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 13:56:00.28 ID:w4MaeKI9.net] noxで以下の用にドラッグドロップを繰り返すようにしているのですが、 これをウィンドウをアクティブ化せずにバックグラウンドで行わせて手前でPCの操作を出来るようにすることは可能でしょうか? ACW(GETID("NoxPlayer","Qt5QWindowIcon"),339,239,425,593,0) FOR X = 1 to 5000 BTN(LEFT,DOWN,641,740,30) MMV(641,755,11) MMV(639,751,10) MMV(569,653,5) MMV(566,646,1) BTN(LEFT,UP,565,644,3) MMV(565,643,15) MMV(564,600,15) BTN(LEFT,DOWN,564,597,47) MMV(563,597,31) MMV(562,597,16) MMV(518,628,16) MMV(513,631,16) MMV(511,633,15) BTN(LEFT,UP,511,634,78) NEXT
173 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 14:05:26.11 ID:AISq9KtV.net] >>164 nox_adb使えばいいよ 本スレで話題に上がってた
174 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 14:19:38.04 ID:w4MaeKI9.net] >>165 nox-adbでデバイスID指定して、その中の絶対座標でドラッグドロップさせればそれらすべてバックグラウンド処理できるという事でしょうか 試してみます
175 名前:ありがとうございます [] [ここ壊れてます]
176 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 19:46:55.86 ID:lZXR1qia.net] 代数の呼び出し?ってどうやるんですか? a = "abcd" fukidasi("a ") SLEEP(5) これだと aしか表示されないです。 auto hot key だと%でくくる奴です。 a := "abcd" MsgBox, 0, , %a% Sleep, 5000
177 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 19:51:42.50 ID:50Xsz/KL.net] fukidasi(a)
178 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 20:05:12.07 ID:lZXR1qia.net] >>168 サーセン
179 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 16:03:50.96 ID:lC6iyiD1.net] デスクトップにあるaaa.txtをデスクトップのa aフォルダに移動したいのですが a = "C:\Users\xxx\Desktop\aaa.txt" b = "C:\Users\xxx\Desktop\a a" DOSCMD("move " + a + " <#DBL>C:\Users\N'o'Te\Desktop\a a<#DBL>") これだと動くのですが、下の記述だと移動してくれません。 DOSCMD("move " + a + " " + b + "") どうすれば動のでしょうか。
180 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 16:10:54.01 ID:Lwj8mmb4.net] >>170 まずはdoscmdの返り値で何のエラーか確認する てかダブルクォート外しちゃったからってだけだろうけど
181 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 16:41:38.79 ID:lC6iyiD1.net] 返り値の出し方わからなかったんですけどダブルクォートつけたらうごきました。 b = "<#DBL>C:\Users\xxx\Desktop\a a<#DBL>" これで良いぽいです。
182 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 22:25:30.23 ID:TffHzaDx.net] DOSCMD("move <#DBL>" + a + "<#DBL> <#DBL>" + b + "<#DBL>") とすれば "a","b" どちらのフルパス名内にスペースがあっても大丈夫
183 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 06:37:12.07 ID:/5L8Sx5/.net] >>172 返り値てかコマンドプロンプトの標準出力だけど doscmd自体が文字列返す関数なので変数に代入してもいいし、直接fukidasiとかに突っ込んでもおk
184 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 13:52:12.02 ID:ouJm8ahfS] SELECTSLCTBOX関数SLCT_CHKでチェック欄が複数出る場合に、 一つだけチェック入れて「OK」アイコンをクリックした場合は うまく行くのですが、二つ以上チェック入れて「OK」すると DEFAULTになってしまいます。二つ以上チェック入れてそれらを 全部実行させる方法はないでしょうか? x = 0 y = 0 SELECT SLCTBOX(SLCT_CHK,30,"test","a","b") CASE SLCT_1 x = 1 CASE SLCT_2 y = 1 DEFAULT x = 2 y = 2 SELEND PRINT x PRINT y
185 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 18:25:52.61 ID:pINC7IeU.net] UWSCからプログラムに初めて触れる程度の初心者です。 画像認識について質問があります 現在複数の画像を設定してクリックするというコードを書いています。 While True ifb chking(“画像名1.bmp”) btn() elseif chking (“画像名2.bmp”) btn() .... Wend という文章になっており無駄が多いです。 それで一度検出した画像の検出をさせないプログラムを書きたいのですがそのような事は可能なのでしょうか?その際に使用する関数などアドバイスをしていただきたいです。
186 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 18:34:28.37 ID:+1cYlkH0.net] 単純にチェック済みフラグ立てて画像認識の前にif置けばいいんでね
187 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:12:31.19 ID:pINC7IeU.net] >>177 !! その話詳しく聞かせて欲しいです。 While True if chking(“画像名1.bmp”) else ifb chking(“画像名1.bmp”) btn() if chking(“画像名2.bmp”) else elseif chking (“画像名2.bmp”) btn() .... Wend というわけではないですよね... 画像名1.bmp=0
188 名前:ネら画像認識、1なら画像認識しない のような文を追加するのでしょうか? [] [ここ壊れてます]
189 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:32:53.70 ID:W2TzwIR9.net] そういうこと フラグの方法だと画像の枚数分フラグが必要になる 俺の提案 画像ファイル名を配列に格納してヒットしたら配列の要素にtrue格納する 当然画像検索前に要素がtrueか否かチェックする
190 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:58:12.98 ID:+1cYlkH0.net] >>178 まあ、実装方法は色々ある 最終的には配列を引数にした関数までいくと脱初心者って感じだが自分が言ったのは /a = true /b = true /略 /while true / if a and chkimg(“a.bmp”) then / btn() / a = false / endif / if b and chkimg(“b.bmp”) then /略 /wend みたいなの 行頭の/はインデントの為なので気にしないで
191 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:58:28.44 ID:pINC7IeU.net] >>179 本当に本当にありがとうございます!! 私の考えているコードです!! 本当にC言語等学んだ事がないので助かりました。 DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp” DIM flag[]=0,0,0 For num = 0 to length(gazou)-1 ifb flag[num]=0 ifb chking(“gazou[num]”) btn() num=num+1 else num=+1 NEXT かなり短縮することができました。 ただフラグを追加した途端文が不安になってしまいました。
192 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:03:46.42 ID:pINC7IeU.net] >>180 あーなるほど!考えてくださりありがとうございます a and chkingという使い方が良さそうですね >>181 の文を少し編集してみます!
193 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:08:47.81 ID:+1cYlkH0.net] >>181 for〜nextの中で添字操作したらダメだよ nextが勝手にやるからいらない てかそれだと一周しかしないからwhileと組み合わせてね
194 名前:デフォルトの名無しさん [2019/01/09(水) 20:14:05.78 ID:DJbFsP/v.net] >>183 あっー!そういえばいりませんねw アドバイスありがとうございます あとこれのフラグを配列化したいのですがa,b,cは定数ですよね? 配列の中に入ったままa=trueなどの情報を持てるのでしょうか? DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp” DIM flag[]= a,b,c a = true b = true c = true while true for num=0 to length(gazou)-1 if a and chkimg(“gazou[num]”) then btn() a = false next wend
195 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:15:43.50 ID:pINC7IeU.net] ごめんなさいId変わってますが同一人物です
196 名前:デフォルトの名無しさん [2019/01/09(水) 20:19:13.03 ID:DJbFsP/v.net] ごめんなさい解決しました! 付き合ってくださった方々ありがとうございます 画像が増えるたびa=trueを追加していけば以下の文章で大丈夫そうですね DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp” DIM flag[]= a,b,c a = true b = true c = true while true for num=0 to length(gazou)-1 if flag[num] and chkimg(“gazou[num]”) then btn() flag[num] = false next wend
197 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:21:39.60 ID:W2TzwIR9.net] >>186 画像がヒットしたらgazouに格納されてるファイル名をtrueで上書きすると言いたかった そしたら配列のフラグいらなくなるでしょ
198 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 20:28:17.81 ID:+1cYlkH0.net] >>186 そうやるなら DIM flag[]= true, true, true だね
199 名前:デフォルトの名無しさん [2019/01/09(水) 20:31:57.46 ID:DJbFsP/v.net] >>187 !!確かにそれを使えばもっと短くできますね やってみます
200 名前:デフォルトの名無しさん [2019/01/09(水) 20:36:48.88 ID:DJbFsP/v.net] 色々アドバイスありがとうございます DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp” while true for num=0 to length(gazou)-1 if gazou[num]!==flase and chkimg(“gazou[num]”) then btn() gazou[num] = false next wend これ完璧ですね!自宅に帰り次第実行させてみたいと思います!!
201 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 21:28:06.29 ID:pINC7IeU.net] 本日ライセンス購入の件をumiumiさんに問い合わせをしたのですがやはり購入は厳しいですよね...
202 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 22:51:04.96 ID:W2TzwIR9.net] 無理じゃないかねえ、返信あったらスレに報告して欲しい
203 名前:デフォルトの名無しさん [2019/01/12(土) 20:42:30.37 ID:0UO0qOat.net] この前コードの相談に乗っていたものです コードは完成したのですが DIM gazou[]="unko(1).bmp","unko(2).bmp","unko(3).bmp","unko(4).bmp","unko(5).bmp" //画像名 WHILE TRUE for num=0 to length(gazou)-1 //クリック対象マークの画像ファイルを指定 IFB gazou[num]=true and CHKIMG("gazou[num]") //クリック対象の画像が見つかった場合
204 名前:、その画像をクリック BTN() //クリック後はプログラムを終了する gazou[num] = true ENDIF //監視時間間隔[s] SLEEP(0.1) next WEND これで実行した場合chking("gazou[num]")が配列から使用されずgazou[num].bmpとして反映されてしまいunko(1)bmpとして反映されません chkingの中では配列を使用することが出来ないのでしょうか?アドバイスお願いします またproライセンスの購入の件ですがまだ返信が来てません [] [ここ壊れてます]
205 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 21:04:21.05 ID:AXIFw4s9.net] CHKIMG(gazou[num]) ダブルクォーテーションいらない
206 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 21:08:06.71 ID:HvhCDbr8.net] 別にuwscに限った話でもないんだが、文字列をダブルクォートで囲うというのは、プログラム的な解釈をさせずそのままの文字列で扱って下さいということ 引数に文字列をわたしたいからといってダブルクォートで囲う必要はない
207 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 21:15:06.03 ID:0UO0qOat.net] 返信ありがとうございます!! 配列使うの初めてで勘違いしてました。実行する事ができました!本当にありがとうございます! あとumiumiさんから返信が来た場合連絡に来ます
208 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 21:29:00.23 ID:HvhCDbr8.net] てかtrueの時はチェックさせないんだから!=では
209 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 17:37:08.88 ID:ywa0zm07.net] UWSCのスクリプトの停止をALT+F2から変えたいんですが、 設定を見たところ、2つのキーを押すしか選択肢がないみたいなんですが、 これをEscキーのみに変えられないでしょうか?
210 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 18:07:29.42 ID:3kooyktr.net] 設定のところでは無理みたいだからスクリプト内で キーを監視して押されたら止めるのを組み込むしかないね
211 名前:デフォルトの名無しさん mailto:sage [2019/01/17(木) 18:15:04.25 ID:pnYdwJsv.net] >>198 変えられない コードでesc押したら終了するように書いておく ループの先頭に if GETKEYSTATE(VK_ESC) then exit みたいな感じ
212 名前:197 mailto:sage [2019/01/17(木) 19:51:17.64 ID:ywa0zm07.net] どうもありがとうございます。スクリプトの方に記述しておきました。
213 名前:デフォルトの名無しさん [2019/01/24(木) 13:58:09.20 ID:Vpq0nFz5.net] マウスを取られずにドラッグ&ドロップの動作を行いたいのですがうまく動作しません。 現状はウィンドウIDを取得して mouseorg(id,2) btn(left,down,x1,y1) mmv(x2,y2) btn(left,up,x3,y3) としています。left,downまではできているようなのですがおそらくmmvが動作していない感じがします。 mouseorg(id,0)の場合はちゃんと動作するので原因が分からず困っております。 たかがドラッグ&ドロップ程度のことができないなんてことはないと思うのですがどなたか分かる方いらっしゃいませんでしょうか?
214 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 14:25:47.31 ID:AXBwS8sa.net] >>202 ちょっとでもググって調べたらわかる事だけど、そのコードだけでは動作が早すぎる
215 名前:デフォルトの名無しさん mailto:sage [2019/01/25(金) 03:55:18.58 ID:djc20dkg.net] まずmmv挟む必要あるのかってのと遅延入れないとアプリ側で処理が追いつかない場合が多い
216 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 03:10:09.68 ID:a09O8V2t.net] 六ヶ所あるポイントをランダムで五ヶ所クリックさせたいのですが、良い方法を教えてください。 ポイント1 x座標100 y座標185 ポイント2 x座標258y座標296 ポイント3x座標315y座標580 以下略 今書こうとしてるのが for i = 0 to 4 BTN(LEFT,CLICK,ここをランダムなポイントにしたい) next アドバイスよろしくお願いします。
217 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 08:20:03.77 ID:kcLCmioN.net] >>205 配列とrandom
218 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 13:16:10.93 ID:M4hiQU5j.net] randomで分岐してBTNのほうが 可読性が高くて俺は好き
219 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 13:47:58.51 ID:yROeBYe4.net] 分岐は座標設定だけにしてBTNは1行にしようよ
220 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 14:46:35.06 ID:Cl/r/hmy.net] クリックしないポイントん乱数できめる
221 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 21:36:38.76 ID:3+HKzeym.net] アドバイスって言うかお前ら暇なんだろ
222 名前:俺のためにはよ作れ [] [ここ壊れてます]
223 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 23:59:09.72 ID:UNSPa4Eu.net] 何を作ればいいですか?
224 名前:デフォルトの名無しさん [2019/01/29(火) 02:43:56.37 ID:IO64zMNw.net] >>203 201です。書き忘れていて申し訳ありませんがsleepはいろいろ数値を変えて各動作に0~2秒程度余裕を持たせて試しています。 mmvも必要ないかもと思い抜いてみたりしましたが結果は変わりません。 そもそも裏動作でドラッグ&ドロップは可能なのでしょうか? 可か不可だけでも教えていただけると嬉しいです。
225 名前:デフォルトの名無しさん mailto:sage [2019/01/29(火) 02:51:47.66 ID:LOO3gYN5.net] >>212 裏動作できるかどうかはそのアプリ次第 簡単な確認方法として裏動作させて IDでSAVEIMGして正常にスクリーンショット取れればできる 取れなければできない
226 名前:デフォルトの名無しさん [2019/02/17(日) 20:05:21.25 ID:z/uMXN8p.net] CHKIMGXで画像の色を判定したいんですけどできますか? 例えば、元の画像が灰色だったらfalseが返ってくるようにしたいです。
227 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 21:23:07.92 ID:QHQeXIGO.net] !chkimgx(gray.bmp) 色を取得したいという話ならpeekcolor ただし座標の指定になる
228 名前:デフォルトの名無しさん [2019/02/17(日) 22:00:13.55 ID:z/uMXN8p.net] >>215 CHKIMGX(temp.bmp)の画像の色が同じじゃないときに処理通っちゃうんですけどそれは仕様ですか?
229 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:08:55.58 ID:QHQeXIGO.net] >>216 説明がめんどくさいから とりあえずchkimgxを含めた前後のコード貼ってくれ
230 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 07:07:31.39 ID:JSWq4P0e.net] >>216 そういう機能が既にある CHKIMGX( 画像名, [ID, x1, y1, x2, y2, 番号, 判定閾値, 着目する色] ) 着目する色: 指定した色とどれだけ近いかでグレースケール化した画像を使ってマッチングの計算を行う。文字の色などを指定することで背景の変化に強いマッチング判定を行うことが可能 着目する色の引数に認識したいカラーコードを入れればOK。「色 判定 アプリ」とかで検索すれば認識したい画像からカラーコード生成できるサイトは引っ掛かる。 これで色違いでの誤動作はだいたい弾いてくれるよ
231 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 11:57:12.20 ID:B+vGb4gg.net] 色の差(閾値)を考慮する機能、いつ頃実装されたのか個人的に興味ある 15年前には無かったような気がするんだが
232 名前:デフォルトの名無しさん [2019/02/18(月) 21:39:57.37 ID:2CdapbG+.net] >>217 イメージはこんな感じの処理を期待しています。 https://imgur.com/Ax1fWdO CALL ChkImgX.uws winid = getid("Main") x1 = 0 y1 = 0 x2 = 1280 y2 = 720 Detect_num = 1 Threshold_delta = 5 Target_color = -1 startup_chkimgx() ifb CHKIMGX("pic/select.png" , winid , x1 , y1 , x2 , y2 , Detect_num , Threshold_delta , Target_color) CMD = "cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap " + G_IMGX_X + " " + G_IMGX_Y DOSCMD(CMD) endif shutdown_chkimgx()
233 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 22:39:55.29 ID:nrhNd94Q.net] >>220 スクリプトに問題はなさそう 閾値を調整しても駄目なんだよね? あと対象の画像をsaveimgで保存した画像で検索したらどうなるか 着目する色を指定するまでもない画像だとおもうんだけど
234 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 23:02:29.08 ID:CU6zYEEj.net] ChkImgXは画像モノクロに加工して走査
235 名前:するからグレーボタンなんて閾値しだいかも これなら完全一致でChkImgのほうが良かったりして その際元画像はもう一回り青色範囲内にして背景含めない必要かな [] [ここ壊れてます]
236 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 01:41:50.90 ID:Wcea5l1h.net] >>220 chkimgxは指定した判定画像に「近い」ものを探している かつ高速化の為に内部では判定画像も画面もグレースケール化して処理をしている (綺麗なグレースケールでなくかなりざっくりしたもの) なのでボタン背景色の違いはグレースケール化によって判別出来ない あるいは、あえて背景の青を着目色として指定すると青色有無が判定画像に強調されるので判別できるかもしれない ただしその場合、文字が消えてボタンの誤判定が発生すると思われる というわけで、素直にchkimg使ったらという>>222 に同意
237 名前:デフォルトの名無しさん [2019/02/19(火) 20:27:55.49 ID:/Cx1K2A5.net] >>221 ,222,223 ありがとうございます 参考にしてちょっとやってみます
238 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:57:44.21 ID:yFQrIlgr.net] すみません別のUWSCスレにも書いたんですが クリックがうまくされず、待機時間など入れてみましたが失敗することが多く、 どのタイミングでクリックしてるのか見るためにBTN(LEFT,CLICK,)の前に print "クリックします" という処理を入れたらなぜか確実にクリックされるようになったのですが、何が原因なのでしょうか?
239 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:08:59.22 ID:kABtCqRT.net] メッセージループやフォーカス問題かな アイドル状態になるまでメッセージループ回しつつ待機する処理を置く
240 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:20:18.72 ID:qrlmwqjK.net] いや単に実行速度が早すぎるだけでしょ sleep入れるかbtnの引数見て待ち時間入れればいい
241 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:22:38.46 ID:pzt1chqt.net] >>225 btn失敗するときはたいていウィンドウが非アクティブになってて1クリック目が受け付けられてないことが多いからウィンドウのアクティブ化を書いてあげると確実になる
242 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:56:05.87 ID:yFQrIlgr.net] ありがとうございます。 とりあえず使えてはいますが毎回 ”クリックします” が表示されるので困ってます。 BTN(LEFT,CLICK,,,100)では失敗が多く、sleep(5)では機能しますが遅すぎるので、 print "クリックします"を仕方なく使っています 失敗するのはランダムなのでウィンドウはアクティブになっていると思うのですが。
243 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:00:11.83 ID:yFQrIlgr.net] クリックが長押しになっているのが原因のような気がしています 画面がドラッグされてしまうことが多いので
244 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:35:40.19 ID:qrlmwqjK.net] >>230 よく分からないので再現できる程度のコード貼ってくれないか? アプリ隠したいならペイントでも電卓でも適当なものでいいからさ もしそれらで再現しないなら操作したいアプリ側の仕様もあるかもしれないし、切り分けの一助にはなるだろう
245 名前:デフォルトの名無しさん [2019/04/02(火) 13:20:23.00 ID:VFSC/5Or.net] INIファイルで16進表記はできないでしょうか? UWSC INI 16進 で調べてみたけど見つかりませんでした わかる方いたら教えてください 因みに$FFでは駄目でした
246 名前:デフォルトの名無しさん mailto:sage [2019/04/02(火) 13:43:08.63 ID:jgYgVP75.net] >>232 10進数じゃなければ文字列として扱われるので その文字列を自力で変換するしかない
247 名前:デフォルトの名無しさん [2019/04/02(火) 19:46:22.94 ID:Vs75GbqA.net] EVAL
248 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 02:47:11.35 ID:YAySA4WV.net] DIM writetval = $0000FFFF WRITEINI( "section", "hex", num_to_hexstr(writetval,8)) DIM readeval = hexstr_to_num(READINI( "section", "hex")) MSGBOX(num_to_hexstr(readeval,8)) FUNCTION num_to_hexstr(num
249 名前:, iwidth) RESULT = "$"+REPLACE(FORMAT(num, iwidth,-1)," ","0") FEND FUNCTION hexstr_to_num(strhex) RESULT = EVAL(strhex) FEND [] [ここ壊れてます]
250 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:52:33.87 ID:C44A9NNj.net] 得られる結果は同じだが EVAL より VAL のほうが素直だったな
251 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 23:02:37.42 ID:hVRP1zbV.net] UWSCでIBM大型計算機エミュレーターの制御はできるのだろうか? 録画機能を使ってもうまく録画してくれない
252 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 23:56:12.98 ID:elRErDJW.net] TSO(TSS)かね? P-COMとかFalconとかソフト名含めてググれば(UWSCじゃなくてVBSとかで)多少事例は出てくるだろう てかそもそもエミュレータにマクロ機能ついてて外部ソフトで操作する必要はないと思うんだけど