1 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:13:49.92 ID:an35jPjo.net] UWSC初心者用スレです わかってる人はこっち 自動化ツールUWSC使いよ集まれ21 egg.5ch.net/test/read.cgi/software/1533818531/ 降臨される神々においては相手を人と思わず猿と思し召されるよう 何卒お願い申し上げます
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とかで)多少事例は出てくるだろう てかそもそもエミュレータにマクロ機能ついてて外部ソフトで操作する必要はないと思うんだけど
253 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 04:23:21.00 ID:P1NdIghv.net] 汎用機のエミュレータなんてあるのかよ 知らんかった
254 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 08:14:42.95 ID:m7iPF43E.net] >>239 いや汎用機のエミュレータって例外的にコンソール端末のエミュレータを指すんだよ
255 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 09:15:41.71 ID:84IJZde6.net] PCで他のマシンのエミュレータなどという言葉が認知されるよりずっと前から汎用機の端末エミュレータの方が知られていたわけだが。
256 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 19:59:20.55 ID:C73Jm2jh.net] >>238 別業務システムからExcelに落としたデータを 大型計算機に入力していきたいニーズがあり、 ふさわしい手段としてUWSCを選択しました
257 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 20:44:34.98 ID:frbWEK8l.net] FTPやっていいか管理者に相談してみれば? 必要なデータ変換方法もこみで
258 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 23:22:57.82 ID:m7iPF43E.net] >>242 ISPFで入力フォームがあって転記するのを自動化したいというお話し? そんなことするよりCSVか固定長に直してエミュレータのファイル転送機能かFTPでデータセットにしちゃった方がいいと思うけど まぁとにかくUWSCは全く適してないので、悪いこと言わんからさっさと有識者捕まえて教えてもらいな
259 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 13:11:00.13 ID:R0+d+gEp.net] https://qiita.com/macro_no_deshi/items/dd3b3405123bad0cfe4a ここを参考に、NOXで裏マクロ化したいのですが動作しません IF CHKIMGX( "画像1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color) BTN(LEFT, CLICK, G_IMGX_X+300, G_IMGX_Y+200) ENDIF これで動作するマクロを裏マクロ化したいので、上記HPを参考に以下の記述にしてみましたが動作しません NOXの保存先はデフォルトです IF CHKIMGX( "画像1.bmp", 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+300) + " " + (G_IMGX_Y+200) PRINT CMD DOSCMD(CMD) ENDIF PRINTで表示されるテキストには、以下のように記載されています cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 440 300 コマンドプロンプトで直接入力すると以下のように返ってきます error: no devices/emulators found
260 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 13:31:06.08 ID:cJYPoSuP.net] >>245 no devices/emulators found エミュレーターが接続されていませんよと出てるので今立ち上げているエミュがadbに接続されているか確認 複数立ち上げているならマクロを回したいエミュを指定する必要がある no devices/emulators foundまで表示されているということはnox_adbまではコマンドが通っているはずだからその先を見直す
261 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 16:11:07.01 ID:OH4xxM/G.net] エンコードの自動化をしたいのですが、エンコードソフトにファイルを渡した時、 たまにエラーが出るのですがそれを回避したいです。 エラー時はコマンドウインドウが出るので "いいえ"を選択
262 名前:キれば回避できます。 if ID = -1 でエラーウインドウが出なかった場合は行けるのですが エラーウインドウが出た場合の指定ってできるのですか? 一応下のコマンドで作ってみたのですが、動くには動くのですがエラーが出なかった場合10秒ほど 止まってしまい、その後動き始めます。 うまく動かすにはどうすればいいのでしょうか 質問id=GetID("質問","Qt5QWindowIcon") IF 質問id = -1 ELSE clkitem(質問id,"いいえ",CLK_BTN) endif [] [ここ壊れてます]
263 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 16:18:38.91 ID:8xPkTgw7.net] >>247 ヘルプより 戻値 = GETID( タイトル, [クラス名, 待ち時間秒, MDI子タイトル] ) 待ち時間秒: 確認できるまで指定された秒数待ちます (0.01〜) 0: 0.1〜10秒まで状況や負荷により自動判断 (デフォルト) -1: 無期限待ち
264 名前:246 mailto:sage [2019/04/16(火) 16:52:24.80 ID:OH4xxM/G.net] >>248 質問id=GetID("質問","Qt5QWindowIcon",0.5,) こうしたらサクッと動きました! ありがとうございます。
265 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:39:44.25 ID:HpurvKDn.net] 私も>>245 と同じサイト見て裏マクロを実行しようとしているのですがうまくいきません 認識した位置でSAVEIMGを使って確認すると、認識している位置はあっていましたが、 ペイントソフトを入れてどこをタップしてるのか見ると認識したところからずれているのが分かりました 縮尺がずれているような感じなのですがなぜそうなったのかがわかりません
266 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:08:04.34 ID:HpurvKDn.net] 手探りで調節すると x方向に1.8倍、y方向に1.9倍ぐらいすれば近いようになるのですがよくわかりません…
267 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 00:53:43.08 ID:/PrCm3A4.net] >>250-251 Noxでやってるって話ならウインドウ縮小してるのでは? 当然ながらデスクトップの解像度よりNoxは小さいサイズで縮尺100%の状態で座標判定する必要がある (設定からウインドウサイズの復元でサイズ100%になる) 注意点は縦画面のアプリ、横のサイズが縦になるから入らなくなるので自動で縮小される
268 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 01:18:48.74 ID:nkG7yKYZ.net] Yだけズレてるなら画面枠だろ マクロ解説のqiitaの最後の方に書いてる
269 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 14:40:58.77 ID:nqSsKFf7.net] >>252 >>253 解像度を携帯電話720×1280でやってましたが PCの解像度が低くて自動的に縮小されてたんですね カスタムで360×640のサイズにしたら狙った通りの場所をタップしてくれました マクロ以前の話でしたね… レス有難うございました
270 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 19:34:12.96 ID:tBIfA+Hb.net] 音が止まったら(無音状態になったら)クリックする というマクロを作りたいのですが音が出ているか出ていないかを検知する関数はないのでしょうか?
271 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 21:18:38.19 ID:uIMNwWvX.net] >>255 そんな関数あるわけないじゃん やり方はいくらか思いつくが ・サウンドドライバから出力レベルを取る ・常駐するレベルメーターを表示するソフトを使って画像認識する
272 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 23:25:46.31 ID:L8iv3v8M.net] >>255 音って何? マイクから拾う音? PCが出してる音?
273 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 23:33:02.29 ID:tBIfA+Hb.net] >>256 サウンドドライバから出力レベルを取る方法が知りたいです 教えてください >>257 PCから出してる音
274 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 23:42:30.40 ID:uIMNwWvX.net] >>258 具体的な方法は知らん それこそレベルメーターのソースでも読んでくれよ
275 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 20:51:34.11 ID:bLQQQcYM.net] 高速リアルタイム スペクトラムアナライザー WaveSpectra http:/
276 名前:/efu.jp.net/soft/ws/ws.html WS151.ZIP とかで上の波形が直線になることを画像認識するのがお手軽と思う Core Audio Interfaces https://docs.microsoft.com/en-us/windows/desktop/coreaudio/core-audio-interfaces IAudioPeakMeter interface https://docs.microsoft.com/en-us/windows/desktop/api/Devicetopology/nn-devicetopology-iaudiopeakmeter IAudioPeakMeter interface https://docs.microsoft.com/en-us/windows/desktop/api/Endpointvolume/nn-endpointvolume-iaudiometerinformation For a code example that uses the IAudioMeterInformation interface, see Peak Meters https://docs.microsoft.com/ja-jp/windows/desktop/CoreAudio/peak-meters hr = pMeterInfo->GetPeakValue(&peak); IAudioMeterInformation::GetPeakValue method https://docs.microsoft.com/en-us/windows/desktop/api/Endpointvolume/nf-endpointvolume-iaudiometerinformation-getpeakvalue ↓これはPowershellでの例 .net – ウィンドウが現在サウンドを再生しているかどうかを調べる https://codeday.me/jp/qa/20190319/438303.html [] [ここ壊れてます]
277 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 20:25:45.26 ID:Tv5gs4em.net] >>260 試してみたけど これそのまんますんなり使えるな https://codeday.me/jp/qa/20190319/438303.html Add-Type -TypeDefinition @' から '@ までの後ろに [Foo.Bar]::IsWindowsPlayingSound() を付け足して IsWindowsPlayingSound.ps1で保存 DIM playng = POWERSHELL("C:\TEST\IsWindowsPlayingSound.ps1") で音が出てればTrue、出ていなければFalseが返るようになる 今までPOWERSHELLスクリプトを実行したことがなれれば 実行できないとエラーがでるので管理者権限でポリシーの設定が必要 UWSCでpowershell()関数使ったらエラー出た問題 https://stuncloud.wordpress.com/2014/07/10/uwsc_powershell_func_had_error/ もしくはPOWERSHELL()でなくDOSCMD()を使って DIM playng = DOSCMD("powershell -ExecutionPolicy RemoteSigned -File C:\TEST\IsWindowsPlayingSound.ps1")
278 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 20:32:53.56 ID:Tv5gs4em.net] 数値として取りたい場合は public static bool IsWindowsPlayingSound() を public static float GetWindowsPlayingSoundLevel() にして return value > 1E-08; を return value; [Foo.Bar]::IsWindowsPlayingSound() を [Foo.Bar]::GetWindowsPlayingSoundLevel() にすれば 数値としてとれるようになる
279 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 22:09:26.74 ID:vpcETFXO.net] いやいや、何でPowerShell経由にするのよ? UWSCに移植できないの?
280 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 22:23:47.98 ID:QmBofejm.net] ???
281 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 14:40:46.22 ID:DJ2xDk2H.net] この内容ならC#でexe化した方が良いよ
282 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 08:05:11.43 ID:sv+72Rh7.net] >>245 のサイトのサンプルコード(完成形)を、画面サイズと画像ファイル名だけ変更して 実行してみたのですが、 jobexp.bmpを発見しました。 cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 718 183 とテキストだけが繰り返されて、画面がタップされません。 パスをコマンドプロンプトから実行すると、画像認識した座標がタップされるのですが・・・。 どこを見直したら良いでしょうか?
283 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 12:37:31.12 ID:1misB5a+.net] >>266 noxのパスを確認 ドライブ跨ぐならそのコードでは通らない
284 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 14:48:00.89 ID:sv+72Rh7.net] >>267 ドライブは跨いでいないと思います。デフォルトのCドライブにインストールしてあり、 パスも確認しました。 試しに、 DOSCMD("cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 718 183") コレだけUWSに書いて実行しましたが、やはりタップされません。 コマンドプロンプトからだとタップされます。何でだろう。
285 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 17:45:58.53 ID:0VcVEbfQ.net] コマンドプロンプトで cd C:\Program Files (x86) はスペ
286 名前:ースが入っているからだめ cd "C:\Program Files (x86)" uwscでの"の書き方は<#DBL>なので注意 [] [ここ壊れてます]
287 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 18:41:30.62 ID:RRkLRWVV.net] >>268 その結果(doscmdの返り値)のメッセージを確認しよう ちなみにドライブ跨ぎの指摘はnoxとuwscが同じドライブかという話し
288 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 19:44:15.43 ID:yddlmgGB.net] GETKEYSTATEの入力キャッチするタイミングがよく分からないです。 SLEEP(30) IFB GETKEYSTATE(VK_A) MSGBOX("Aが押されました") ENDIF て感じでSLEEP中にAキーを押下するとSLEEP後の判定でTRUEになる。 気持ち的にはIFBのタイミングで押下していないとFALSEになると思うんだけど。 そういう仕様なのか自分の環境によるのかどっちなんだろう。
289 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 20:35:55.94 ID:sv+72Rh7.net] >>270 PRINT DOSCMD(省略) の出力内容で良いでしょうか? 'nox_adb' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 で、uwsc自体はDドライブに置いてありまして、これをCドライブへ移したら正常に動作しました。 ドライブ跨ぎってこういう意味だったんですね。 コマンドプロンプトは元々Cドライブなので動作していたと。 >>269 今回はコピペでしたが、自分で書く時は気をつけます。 助言頂いた方ありがとうございました。
290 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 22:21:46.02 ID:RRkLRWVV.net] >>271 まあ仕様と言えば仕様 keystateという変数があり、キーボードを押下するとsetされるとイメージすればどうかな getされるまでは他のキーが押されると書き換わり getされるとクリアされる というかそうでないとまさにコード実行のミリ秒タイミングでキーボード押さないと反応出来なくなっちゃうわけで イベントハンドラーではないキー受け付けはこんな仕様になる
291 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 01:04:26.89 ID:NO6iccuH.net] chkimgについてですが検索画像は大きいより小さい方が処理速いんでしょうか? どういう検索方法なのかご存知の方居たらざっくりでいいので教えて貰えると嬉しいです
292 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 07:49:23.40 ID:l0E6gxGG.net] >>273 なるほど、変数に格納するイメージなら分かりやすいです。 そういう仕様としてやってみます。 ありがとう!
293 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 07:59:26.04 ID:AZdJp4Mp.net] >>274 イメージとしては解像度分の1ピクセルずつズラしながら単にビットマップ変数同士を比較してるだけ なのでまず比較用の画像が小さくても大きくても最大試行回数は変わらない 例えば対象が解像度1920*1080のデスクトップ全体であればヒットしない場合の最大は約200万回ということ (はみ出るところを省略してるかは知らない) 比較処理そのものはサイズで大いに影響があると言える 例えば100*100ピクセルの24ビットカラーであれば、3万byte、約30kbが完全一致するか比較が行われる もちろん一回は1ミリ秒にすらならないがなんせ200万回もやれば馬鹿にならない 従って小さいほど速くなる 言うまでもなく検索画像より検索対象をデスクトップ全体ではなくウインドウ内に限定した方が遥かに速くなる (可能なら範囲指定した方がさらに速い) 必ず見つかる状態なら試行回数以下で終わるからいいけど、出現待ちする場合なんかは毎回最大回数空回りさせるので遅くなる
294 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 23:05:42.88 ID:NO6iccuH.net] >>276 理解出来ました ありがとうございました
295 名前:デフォルトの名無しさん [2019/05/16(木) 11:03:04.25 ID:k6wqzKwn.net] Chkimgにおいて24bmpで画像認識させたのですが認識してくれませんでした 4重の別
296 名前:Xに撮ったクリックしたい箇所の画像認識、chkingx関数による曖昧認識、色幅を持たせるなどしても認識してくれません また、一回は認識したものの同じクエストに入ったのに2回目は認識しないということもあります これ以外の方法または自分の見落としなどはありますか? [] [ここ壊れてます]
297 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 11:07:54.44 ID:/xtfCvGN.net] >>278 saveimgで保存して手を加えずchkimgしてもだめ?
298 名前:デフォルトの名無しさん [2019/05/16(木) 11:13:35.45 ID:k6wqzKwn.net] >>279 ある画像がランダム出現した時に画面全体から探して一致する、その画像をクリックしたいのでペイントに貼って
299 名前:デフォルトの名無しさん [2019/05/16(木) 11:15:54.41 ID:k6wqzKwn.net] >>279 ある画像がランダム出現した時に画面全体から探して一致する、その画像をクリックしたいのでペイントに貼ってトリミングしています Saveimgでもトリミング出来ますか?
300 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 11:34:15.95 ID:/xtfCvGN.net] >>281 x,y,幅,高さを指定してsaveimgすればいい
301 名前:デフォルトの名無しさん [2019/05/16(木) 11:41:42.70 ID:k6wqzKwn.net] >>282 やってみます!
302 名前:デフォルトの名無しさん [2019/05/16(木) 19:48:50.75 ID:zw/t/jBa.net] >>282 この方法でも2回目以降が出来ませんでした、chkimgxとの併用は指定範囲が有効ではありません、スタックトレースの取得に失敗って感じでエラー出ます…こちらも良ければ教えてください
303 名前:デフォルトの名無しさん [2019/05/16(木) 20:00:17.42 ID:zw/t/jBa.net] Chkimgxは色幅を持たせていたが故のエラーでした
304 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 01:32:37.00 ID:a8AA4Bsn.net] スクリプトが悪い可能性は一切ないの? そうでなければ画像の一部にエフェクトが掛っているか透過色があって完全一致しないとか
305 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:14:28.38 ID:qzRA2hRY.net] しまった メイン側でプログラム作ってからVPCに持っていったら解像度違うせいか画像認識しないわ… vmwだとWQHD無いのねめんどーくさー
306 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 10:26:46.97 ID:UcoHXcCc.net] Chkimgxって64bit版なんてないよね?
307 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 12:08:21.57 ID:DJoW+AAC.net] もしあったとしてuwscと何の関係が?
308 名前:デフォルトの名無しさん [2019/05/21(火) 21:50:55.46 ID:9ncm2Kmj.net] ifb chkimg or chkimg or chkimg or のように横に長くor文を続けると見栄えが悪く、修正なども面倒なため、縦に綺麗に並べたいのですが改行するとエラー(or型があっていない)が出ます ifb (~ ~); のようにカッコで括っても無理でした 綺麗にする方法はありますか?
309 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 22:00:10.45 ID:GOukkBG2.net] >>290 SELECT - SELEND使えばどうだろう
310 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 22:01:42.81 ID:pQ6gs7NX.net] <行結合> _ (アンダーバー) // 行の最後に付ける事により次の行と結合させます
311 名前:デフォルトの名無しさん [2019/05/21(火) 22:11:23.08 ID:9ncm2Kmj.net] >>291 ありがとうございます!今回は行結合を使うことにしました、しかしselect文も場合分けする時に使えそうですし、自分の知らない関数だったので視野が広がりました
312 名前:デフォルトの名無しさん [2019/05/21(火) 22:12:47.36 ID:9ncm2Kmj.net] >>292 検索しても到底見つかることは無かったであろう答えをありがとうございます!おかげで綺麗なコードが書けます!
313 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 01:45:18.21 ID:t4YpuTXH.net] >>290 一つのif/ifbに全部orで条件結合すると途中で見つかっても全部チェックするから条件増えるほどパフォーマンス悪くなるし あり得るか知らないけど複数見つかった場合に座標の変数が書き換えられてしまうのでバグの温床にもなるから止めた方がいい 共通した処理を関数化するなりして以下のようにすればさほど可読性は悪くないと思う ifb chkimg(A.bmp) 処理() elseif chkimg(B.bmp) 処理() elseif chkimg(C.bmp) 処理() endif あとSELECTはある特定の変数(関数の戻り値)の評価の列挙だから別の条件のchkimgには使え
314 名前:ネい [] [ここ壊れてます]
315 名前:デフォルトの名無しさん [2019/05/22(水) 09:09:42.03 ID:KgqzAKkh.net] >>295 option shortcircuit を使えばいいだけでは?
316 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 12:47:18.70 ID:t4YpuTXH.net] >>296 短絡評価あるの知らんかった…ほんとよく出来てるなあ ならまあ、後は好みでいいかな 自分は別々の処理させたりフラグ建てたりする事が多いから>>295 みたいにしてるけど
317 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 19:54:39.43 ID:Q2YhfS/Q.net] ifとifbって何が違うの? >>295 みたいにelseifと混ぜて大丈夫?
318 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 19:56:04.78 ID:Q2YhfS/Q.net] ごめんぐぐったら変な仕様なの理解した
319 名前:デフォルトの名無しさん mailto:sage [2019/05/23(木) 17:42:34.32 ID:HnnhfQrk.net] HASHTBL型の変数を簡単にコピーする方法はありませんか? HASHTBL a = HASH_CASECARE a["asd"] = 100 HASHTBL b = HASH_CASECARE b = a とするとシンタックスエラーになってしまいます。 FOR文で回す方法しかありませんか?
320 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 01:28:29.43 ID:k9T5g2vH.net] //------------------------------------------------------ // HASHTBL のコピー // dst: コピー先 // src: コピー元 // bCarryKey: 複製/変更 // CarryKey=FALSE(デフォルト)なら通常の複製となる // bCarryKey=TRUEのとき // dstにしか含まれていないキーとそれに関わる値を残す //------------------------------------------------------ FUNCTION HASHTBL_COPY(var dst[],src[],bCarryKey=FALSE) DIM size = LENGTH(src) IFB FALSE=bCarryKey THEN dst = HASH_REMOVEALL ENDIF DIM i FOR i=0 TO size-1 dst[src[i,HASH_KEY]]=src[i,HASH_VAL] NEXT RESULT = LENGTH(dst) FEND 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
321 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 01:30:21.06 ID:k9T5g2vH.net] LOGPRINT( TRUE, 0, 0) HASHTBL hst_a HASHTBL hst_b hst_a["a"]=1 hst_a["c"]=3 hst_b["z"]=26 MSG("hst_aコピー前サイズ="+LENGTH(hst_a)) MSG("hst_bコピー前サイズ="+LENGTH(hst_b)) HASHTBL_COPY(hst_b,hst_a,TRUE) MSG("hst_bコピー(変更)後サイズ="+LENGTH(hst_b)) MSG("hst_b[<#DBL>a<#DBL>]="+hst_b["a"]) MSG("hst_b[<#DBL>c<#DBL>]="+hst_b["c"]) MSG("hst_b[<#DBL>z<#DBL>]="+hst_b["z"]) HASHTBL_COPY(hst_b,hst_a) MSG("hst_bコピー(複製)後サイズ="+LENGTH(hst_b)) MSG("hst_b[<#DBL>a<#DBL>]="+hst_b["a"]) MSG("hst_b[<#DBL>c<#DBL>]="+hst_b["c"]) MSG("hst_b[<#DBL>z<#DBL>]="+hst_b["z"]) MSG("30秒後に終了") SLEEP(30) FUNCTION MSG(str) RESULT=0 PRINT str // MSGBOX(str) FEND
322 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 16:57:36.33 ID:kezAIt7g.net] >>301 回答ありがとうございます! やはりFOR文で回す方法になるのですね。 HASHTBLを引数にする時は [] がいることを初めて知りました。 使用方法も合わせて分かりやすい回答ありがとうございました!!
323 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 07:21:07.00 ID:gyA6d7Mz.net] noxで画面をスクロールするマクロを作りたいと思い、スワイプで動かそうと思い作って見ましたがダメでした。 DOSCMD("cd C:\Nox\bin & nox_adb shell input touchscreen swipe"+353 + 1107 + 353 + 250 ) アドバイスください。 追加で質問なんですがスワイプとドラックの違いがよくわかりません スワイプは一回タッチして軽く放して動かす。ドラックはタッチしたまま動かす であっているのでしょうか?
324 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 09:33:03.37 ID:JiVdzwM6.net] >>304 ダメと言うのはどうなる? …てかもしそのレスの通りのコマンドだとswipeの後にスペースないし、 その後の座標も全部スペースなしで連結されるからシンタックスエラーな気がするが
325 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 09:35:17.03 ID:JiVdzwM6.net] >>304 スワイプとドラッグは大差ない 強いて言うならドラッグはタッチして対象を掴んでから自
326 名前:由に動かす スワイプは最初に貯めなく、一定方向に動かす [] [ここ壊れてます]
327 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 10:51:33.10 ID:G6snbdcx.net] androidをscrcpyというソフトを使ってでPCで自動化しています BTN(LEFT,CLICK,,,)でクリックがされないことが度々あるのですが、待機時間を入れたり BTN(LEFT,DOWN)BTN(LEFT,UP)のように記述したりしているのですが、失敗することがあります 操作の関係上、必要以上に待機時間を長くすることはできません。 失敗した時に画面を確認するとマウスカーソルはクリックする場所にキチンと移動しているようです 確実にクリックさせる方法はないでしょうか?
328 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:53:41.40 ID:gyA6d7Mz.net] >>305 実行するとエラーは出ないのですが、何も起きません。 どう書けば動くのかわからないので、アドバイスください。
329 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 20:30:10.96 ID:JiVdzwM6.net] >>308 エラーが出ないってのはエラー見てないだけでしょ doscmdはあくまでコマンドプロンプト叩くだけだからコマンド内容が成功しても失敗してもエラーにはならない その代わりコマンドプロンプトで叩いた時の出力が返り値になっているのでそれをprintなりすることで結果を確認できる print doscmd(~) しかしそんなことするまでもなく、まずdoscmdに突っ込もうとしてる文字列を見直しなって それこそprintしたらわかりやすい print (>>304 のdoscmdの()の中身) 後は>>305 に書いた通りなので以下略
330 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 21:15:47.46 ID:gyA6d7Mz.net] >>309 Printで確認しながら書いたら動きました。 色々情報ありがとうございました DOSCMD("cd C:\Nox\bin & nox_adb shell input touchscreen swipe "+ 353 + " " + 1107 + " " + 353 + " " + 250 ) これで動きました。
331 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 10:50:09.25 ID:tA+gABtL.net] HASHTBLの値に配列を設定する方法はありませんか? 以下のようにすると「式がおかしい or 型があっていない」とエラーになってしまいます。 HASHTBL aaaa = HASH_CASECARE aaaa["abs"] = 1,2,3 配列変数は DIM 宣言する必要があるみたいなので DIM a = 1,2,3 HASHTBL aaaa = HASH_CASECARE aaaa["abs"] = a と代入した所「1」しか値が代入されていません。 以下の様に値をとれると助かります。 FOR i = 0 TO (LENGTH(aaaa) - 1) key = aaaa[i, HASH_KEY] value = aaaa[i, HASH_VAL] FOR j = 0 TO (LENGTH(value) - j) PRINT key + ": " + value[j] NEXT NEXT