UWSC初心者用スレat TECH
UWSC初心者用スレ - 暇つぶし2ch216:デフォルトの名無しさん
19/01/28 03:10:09.68 a09O8V2t.net
六ヶ所あるポイントをランダムで五ヶ所クリックさせたいのですが、良い方法を教えてください。
ポイント1 x座標100 y座標185
ポイント2 x座標258y座標296
ポイント3x座標315y座標580
以下略
今書こうとしてるのが
for i = 0 to 4
BTN(LEFT,CLICK,ここをランダムなポイントにしたい)
next
アドバイスよろしくお願いします。

217:デフォルトの名無しさん
19/01/28 08:20:03.77 kcLCmioN.net
>>205
配列とrandom

218:デフォルトの名無しさん
19/01/28 13:16:10.93 M4hiQU5j.net
randomで分岐してBTNのほうが
可読性が高くて俺は好き

219:デフォルトの名無しさん
19/01/28 13:47:58.51 yROeBYe4.net
分岐は座標設定だけにしてBTNは1行にしようよ

220:デフォルトの名無しさん
19/01/28 14:46:35.06 Cl/r/hmy.net
クリックしないポイントん乱数できめる

221:デフォルトの名無しさん
19/01/28 21:36:38.76 3+HKzeym.net
アドバイスって言うかお前ら暇なんだろ


222:俺のためにはよ作れ



223:デフォルトの名無しさん
19/01/28 23:59:09.72 UNSPa4Eu.net
何を作ればいいですか?

224:デフォルトの名無しさん
19/01/29 02:43:56.37 IO64zMNw.net
>>203
201です。書き忘れていて申し訳ありませんがsleepはいろいろ数値を変えて各動作に0~2秒程度余裕を持たせて試しています。
mmvも必要ないかもと思い抜いてみたりしましたが結果は変わりません。
そもそも裏動作でドラッグ&ドロップは可能なのでしょうか?
可か不可だけでも教えていただけると嬉しいです。

225:デフォルトの名無しさん
19/01/29 02:51:47.66 LOO3gYN5.net
>>212
裏動作できるかどうかはそのアプリ次第
簡単な確認方法として裏動作させて
IDでSAVEIMGして正常にスクリーンショット取れればできる
取れなければできない

226:デフォルトの名無しさん
19/02/17 20:05:21.25 z/uMXN8p.net
CHKIMGXで画像の色を判定したいんですけどできますか?
例えば、元の画像が灰色だったらfalseが返ってくるようにしたいです。

227:デフォルトの名無しさん
19/02/17 21:23:07.92 QHQeXIGO.net
!chkimgx(gray.bmp)
色を取得したいという話ならpeekcolor
ただし座標の指定になる

228:デフォルトの名無しさん
19/02/17 22:00:13.55 z/uMXN8p.net
>>215
CHKIMGX(temp.bmp)の画像の色が同じじゃないときに処理通っちゃうんですけどそれは仕様ですか?

229:デフォルトの名無しさん
19/02/17 22:08:55.58 QHQeXIGO.net
>>216
説明がめんどくさいから
とりあえずchkimgxを含めた前後のコード貼ってくれ

230:デフォルトの名無しさん
19/02/18 07:07:31.39 JSWq4P0e.net
>>216
そういう機能が既にある
CHKIMGX( 画像名, [ID, x1, y1, x2, y2, 番号, 判定閾値, 着目する色] )
着目する色: 指定した色とどれだけ近いかでグレースケール化した画像を使ってマッチングの計算を行う。文字の色などを指定することで背景の変化に強いマッチング判定を行うことが可能
着目する色の引数に認識したいカラーコードを入れればOK。「色 判定 アプリ」とかで検索すれば認識したい画像からカラーコード生成できるサイトは引っ掛かる。
これで色違いでの誤動作はだいたい弾いてくれるよ

231:デフォルトの名無しさん
19/02/18 11:57:12.20 B+vGb4gg.net
色の差(閾値)を考慮する機能、いつ頃実装されたのか個人的に興味ある
15年前には無かったような気がするんだが

232:デフォルトの名無しさん
19/02/18 21:39:57.37 2CdapbG+.net
>>217
イメージはこんな感じの処理を期待しています。
URLリンク(imgur.com)
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:デフォルトの名無しさん
19/02/18 22:39:55.29 nrhNd94Q.net
>>220
スクリプトに問題はなさそう
閾値を調整しても駄目なんだよね?
あと対象の画像をsaveimgで保存した画像で検索したらどうなるか
着目する色を指定するまでもない画像だとおもうんだけど

234:デフォルトの名無しさん
19/02/18 23:02:29.08 CU6zYEEj.net
ChkImgXは画像モノクロに加工して走査


235:するからグレーボタンなんて閾値しだいかも これなら完全一致でChkImgのほうが良かったりして その際元画像はもう一回り青色範囲内にして背景含めない必要かな



236:デフォルトの名無しさん
19/02/19 01:41:50.90 Wcea5l1h.net
>>220
chkimgxは指定した判定画像に「近い」ものを探している
かつ高速化の為に内部では判定画像も画面もグレースケール化して処理をしている
(綺麗なグレースケールでなくかなりざっくりしたもの)
なのでボタン背景色の違いはグレースケール化によって判別出来ない
あるいは、あえて背景の青を着目色として指定すると青色有無が判定画像に強調されるので判別できるかもしれない
ただしその場合、文字が消えてボタンの誤判定が発生すると思われる
というわけで、素直にchkimg使ったらという>>222に同意

237:デフォルトの名無しさん
19/02/19 20:27:55.49 /Cx1K2A5.net
>>221,222,223
ありがとうございます
参考にしてちょっとやってみます

238:デフォルトの名無しさん
19/03/09 00:57:44.21 yFQrIlgr.net
すみません別のUWSCスレにも書いたんですが
クリックがうまくされず、待機時間など入れてみましたが失敗することが多く、
どのタイミングでクリックしてるのか見るためにBTN(LEFT,CLICK,)の前に print "クリックします"
という処理を入れたらなぜか確実にクリックされるようになったのですが、何が原因なのでしょうか?

239:デフォルトの名無しさん
19/03/09 17:08:59.22 kABtCqRT.net
メッセージループやフォーカス問題かな
アイドル状態になるまでメッセージループ回しつつ待機する処理を置く

240:デフォルトの名無しさん
19/03/09 17:20:18.72 qrlmwqjK.net
いや単に実行速度が早すぎるだけでしょ
sleep入れるかbtnの引数見て待ち時間入れればいい

241:デフォルトの名無しさん
19/03/09 17:22:38.46 pzt1chqt.net
>>225
btn失敗するときはたいていウィンドウが非アクティブになってて1クリック目が受け付けられてないことが多いからウィンドウのアクティブ化を書いてあげると確実になる

242:デフォルトの名無しさん
19/03/09 17:56:05.87 yFQrIlgr.net
ありがとうございます。
とりあえず使えてはいますが毎回 ”クリックします” が表示されるので困ってます。
BTN(LEFT,CLICK,,,100)では失敗が多く、sleep(5)では機能しますが遅すぎるので、
print "クリックします"を仕方なく使っています
失敗するのはランダムなのでウィンドウはアクティブになっていると思うのですが。

243:デフォルトの名無しさん
19/03/09 18:00:11.83 yFQrIlgr.net
クリックが長押しになっているのが原因のような気がしています
画面がドラッグされてしまうことが多いので

244:デフォルトの名無しさん
19/03/09 21:35:40.19 qrlmwqjK.net
>>230
よく分からないので再現できる程度のコード貼ってくれないか?
アプリ隠したいならペイントでも電卓でも適当なものでいいからさ
もしそれらで再現しないなら操作したいアプリ側の仕様もあるかもしれないし、切り分けの一助にはなるだろう

245:デフォルトの名無しさん
19/04/02 13:20:23.00 VFSC/5Or.net
INIファイルで16進表記はできないでしょうか?
UWSC INI 16進 で調べてみたけど見つかりませんでした
わかる方いたら教えてください
因みに$FFでは駄目でした

246:デフォルトの名無しさん
19/04/02 13:43:08.63 jgYgVP75.net
>>232
10進数じゃなければ文字列として扱われるので
その文字列を自力で変換するしかない

247:デフォルトの名無しさん
19/04/02 19:46:22.94 Vs75GbqA.net
EVAL

248:デフォルトの名無しさん
19/04/08 02:47:11.35 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:デフォルトの名無しさん
19/04/08 12:52:33.87 C44A9NNj.net
得られる結果は同じだが
EVAL より VAL のほうが素直だったな

251:デフォルトの名無しさん
19/04/09 23:02:37.42 hVRP1zbV.net
UWSCでIBM大型計算機エミュレーターの制御はできるのだろうか?
録画機能を使ってもうまく録画してくれない

252:デフォルトの名無しさん
19/04/09 23:56:12.98 elRErDJW.net
TSO(TSS)かね? P-COMとかFalconとかソフト名含めてググれば(UWSCじゃなくてVBSとかで)多少事例は出てくるだろう
てかそもそもエミュレータにマクロ機能ついてて外部ソフトで操作する必要はないと思うんだけど

253:デフォルトの名無しさん
19/04/10 04:23:21.00 P1NdIghv.net
汎用機のエミュレータなんてあるのかよ
知らんかった

254:デフォルトの名無しさん
19/04/10 08:14:42.95 m7iPF43E.net
>>239
いや汎用機のエミュレータって例外的にコンソール端末のエミュレータを指すんだよ

255:デフォルトの名無しさん
19/04/10 09:15:41.71 84IJZde6.net
PCで他のマシンのエミュレータなどという言葉が認知されるよりずっと前から汎用機の端末エミュレータの方が知られていたわけだが。

256:デフォルトの名無しさん
19/04/10 19:59:20.55 C73Jm2jh.net
>>238
別業務システムからExcelに落としたデータを
大型計算機に入力していきたいニーズがあり、
ふさわしい手段としてUWSCを選択しました

257:デフォルトの名無しさん
19/04/10 20:44:34.98 frbWEK8l.net
FTPやっていいか管理者に相談してみれば?
必要なデータ変換方法もこみで

258:デフォルトの名無しさん
19/04/10 23:22:57.82 m7iPF43E.net
>>242
ISPFで入力フォームがあって転記するのを自動化したいというお話し?
そんなことするよりCSVか固定長に直してエミュレータのファイル転送機能かFTPでデータセットにしちゃった方がいいと思うけど
まぁとにかくUWSCは全く適してないので、悪いこと言わんからさっさと有識者捕まえて教えてもらいな

259:デフォルトの名無しさん
19/04/15 13:11:00.13 R0+d+gEp.net
URLリンク(qiita.com)
ここを参考に、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:デフォルトの名無しさん
19/04/15 13:31:06.08 cJYPoSuP.net
>>245
no devices/emulators found
エミュレーターが接続されていませんよと出てるので今立ち上げているエミュがadbに接続されているか確認
複数立ち上げているならマクロを回したいエミュを指定する必要がある
no devices/emulators foundまで表示されているということはnox_adbまではコマンドが通っているはずだからその先を見直す

261:デフォルトの名無しさん
19/04/16 16:11:07.01 OH4xxM/G.net
エンコードの自動化をしたいのですが、エンコードソフトにファイルを渡した時、
たまにエラーが出るのですがそれを回避したいです。
エラー時はコマンドウインドウが出るので "いいえ"を選択�


262:キれば回避できます。 if ID = -1 でエラーウインドウが出なかった場合は行けるのですが エラーウインドウが出た場合の指定ってできるのですか? 一応下のコマンドで作ってみたのですが、動くには動くのですがエラーが出なかった場合10秒ほど 止まってしまい、その後動き始めます。 うまく動かすにはどうすればいいのでしょうか 質問id=GetID("質問","Qt5QWindowIcon") IF 質問id = -1 ELSE clkitem(質問id,"いいえ",CLK_BTN) endif



263:デフォルトの名無しさん
19/04/16 16:18:38.91 8xPkTgw7.net
>>247
ヘルプより
戻値 = GETID( タイトル, [クラス名, 待ち時間秒, MDI子タイトル] )
 待ち時間秒: 確認できるまで指定された秒数待ちます (0.01~)
         0: 0.1~10秒まで状況や負荷により自動判断 (デフォルト)
        -1: 無期限待ち

264:246
19/04/16 16:52:24.80 OH4xxM/G.net
>>248
質問id=GetID("質問","Qt5QWindowIcon",0.5,)
こうしたらサクッと動きました!
ありがとうございます。

265:デフォルトの名無しさん
19/04/24 22:39:44.25 HpurvKDn.net
私も>>245と同じサイト見て裏マクロを実行しようとしているのですがうまくいきません
認識した位置でSAVEIMGを使って確認すると、認識している位置はあっていましたが、
ペイントソフトを入れてどこをタップしてるのか見ると認識したところからずれているのが分かりました
縮尺がずれているような感じなのですがなぜそうなったのかがわかりません

266:デフォルトの名無しさん
19/04/24 23:08:04.34 HpurvKDn.net
手探りで調節すると
x方向に1.8倍、y方向に1.9倍ぐらいすれば近いようになるのですがよくわかりません…

267:デフォルトの名無しさん
19/04/25 00:53:43.08 /PrCm3A4.net
>>250-251
Noxでやってるって話ならウインドウ縮小してるのでは?
当然ながらデスクトップの解像度よりNoxは小さいサイズで縮尺100%の状態で座標判定する必要がある
(設定からウインドウサイズの復元でサイズ100%になる)
注意点は縦画面のアプリ、横のサイズが縦になるから入らなくなるので自動で縮小される

268:デフォルトの名無しさん
19/04/25 01:18:48.74 nkG7yKYZ.net
Yだけズレてるなら画面枠だろ
マクロ解説のqiitaの最後の方に書いてる

269:デフォルトの名無しさん
19/04/25 14:40:58.77 nqSsKFf7.net
>>252
>>253
解像度を携帯電話720×1280でやってましたが
PCの解像度が低くて自動的に縮小されてたんですね
カスタムで360×640のサイズにしたら狙った通りの場所をタップしてくれました
マクロ以前の話でしたね…
レス有難うございました

270:デフォルトの名無しさん
19/05/07 19:34:12.96 tBIfA+Hb.net
音が止まったら(無音状態になったら)クリックする というマクロを作りたいのですが音が出ているか出ていないかを検知する関数はないのでしょうか?

271:デフォルトの名無しさん
19/05/07 21:18:38.19 uIMNwWvX.net
>>255
そんな関数あるわけないじゃん
やり方はいくらか思いつくが
・サウンドドライバから出力レベルを取る
・常駐するレベルメーターを表示するソフトを使って画像認識する

272:デフォルトの名無しさん
19/05/07 23:25:46.31 L8iv3v8M.net
>>255
音って何?
マイクから拾う音?
PCが出してる音?

273:デフォルトの名無しさん
19/05/07 23:33:02.29 tBIfA+Hb.net
>>256
サウンドドライバから出力レベルを取る方法が知りたいです
教えてください
>>257
PCから出してる音

274:デフォルトの名無しさん
19/05/07 23:42:30.40 uIMNwWvX.net
>>258
具体的な方法は知らん
それこそレベルメーターのソースでも読んでくれよ

275:デフォルトの名無しさん
19/05/08 20:51:34.11 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:デフォルトの名無しさん
19/05/09 20:25:45.26 Tv5gs4em.net
>>260
試してみたけど
これそのまんますんなり使えるな
URLリンク(codeday.me)
Add-Type -TypeDefinition @'
から
'@
までの後ろに
[Foo.Bar]::IsWindowsPlayingSound()
を付け足して
IsWindowsPlayingSound.ps1で保存
DIM playng = POWERSHELL("C:\TEST\IsWindowsPlayingSound.ps1")
で音が出てればTrue、出ていなければFalseが返るようになる
今までPOWERSHELLスクリプトを実行したことがなれれば
実行できないとエラーがでるので管理者権限でポリシーの設定が必要
UWSCでpowershell()関数使ったらエラー出た問題
URLリンク(stuncloud.wordpress.com)
もしくはPOWERSHELL()でなくDOSCMD()を使って
DIM playng = DOSCMD("powershell -ExecutionPolicy RemoteSigned -File C:\TEST\IsWindowsPlayingSound.ps1")

278:デフォルトの名無しさん
19/05/09 20:32:53.56 Tv5gs4em.net
数値として取りたい場合は
public static bool IsWindowsPlayingSound()

public static float GetWindowsPlayingSoundLevel()
にして
return value > 1E-08;

return value;
[Foo.Bar]::IsWindowsPlayingSound()

[Foo.Bar]::GetWindowsPlayingSoundLevel()
にすれば
数値としてとれるようになる

279:デフォルトの名無しさん
19/05/09 22:09:26.74 vpcETFXO.net
いやいや、何でPowerShell経由にするのよ?
UWSCに移植できないの?

280:デフォルトの名無しさん
19/05/09 22:23:47.98 QmBofejm.net
???

281:デフォルトの名無しさん
19/05/11 14:40:46.22 DJ2xDk2H.net
この内容ならC#でexe化した方が良いよ

282:デフォルトの名無しさん
19/05/14 08:05:11.43 sv+72Rh7.net
>>245 のサイトのサンプルコード(完成形)を、画面サイズと画像ファイル名だけ変更して
実行してみたのですが、
jobexp.bmpを発見しました。
cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 718 183
とテキストだけが繰り返されて、画面がタップされません。
パスをコマンドプロンプトから実行すると、画像認識した座標がタップされるのですが・・・。
どこを見直したら良いでしょうか?

283:デフォルトの名無しさん
19/05/14 12:37:31.12 1misB5a+.net
>>266
noxのパスを確認
ドライブ跨ぐならそのコードでは通らない

284:デフォルトの名無しさん
19/05/14 14:48:00.89 sv+72Rh7.net
>>267
ドライブは跨いでいないと思います。デフォルトのCドライブにインストールしてあり、
パスも確認しました。
試しに、
DOSCMD("cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 718 183")
コレだけUWSに書いて実行しましたが、やはりタップされません。
コマンドプロンプトからだとタップされます。何でだろう。

285:デフォルトの名無しさん
19/05/14 17:45:58.53 0VcVEbfQ.net
コマンドプロンプトで
cd C:\Program Files (x86)
はスペ


286:ースが入っているからだめ cd "C:\Program Files (x86)" uwscでの"の書き方は<#DBL>なので注意



287:デフォルトの名無しさん
19/05/14 18:41:30.62 RRkLRWVV.net
>>268
その結果(doscmdの返り値)のメッセージを確認しよう
ちなみにドライブ跨ぎの指摘はnoxとuwscが同じドライブかという話し

288:デフォルトの名無しさん
19/05/14 19:44:15.43 yddlmgGB.net
GETKEYSTATEの入力キャッチするタイミングがよく分からないです。
SLEEP(30)
IFB GETKEYSTATE(VK_A)
MSGBOX("Aが押されました")
ENDIF
て感じでSLEEP中にAキーを押下するとSLEEP後の判定でTRUEになる。
気持ち的にはIFBのタイミングで押下していないとFALSEになると思うんだけど。
そういう仕様なのか自分の環境によるのかどっちなんだろう。

289:デフォルトの名無しさん
19/05/14 20:35:55.94 sv+72Rh7.net
>>270
PRINT DOSCMD(省略)
の出力内容で良いでしょうか?
'nox_adb' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
で、uwsc自体はDドライブに置いてありまして、これをCドライブへ移したら正常に動作しました。
ドライブ跨ぎってこういう意味だったんですね。
コマンドプロンプトは元々Cドライブなので動作していたと。
>>269
今回はコピペでしたが、自分で書く時は気をつけます。
助言頂いた方ありがとうございました。

290:デフォルトの名無しさん
19/05/14 22:21:46.02 RRkLRWVV.net
>>271
まあ仕様と言えば仕様
keystateという変数があり、キーボードを押下するとsetされるとイメージすればどうかな
getされるまでは他のキーが押されると書き換わり
getされるとクリアされる
というかそうでないとまさにコード実行のミリ秒タイミングでキーボード押さないと反応出来なくなっちゃうわけで
イベントハンドラーではないキー受け付けはこんな仕様になる

291:デフォルトの名無しさん
19/05/15 01:04:26.89 NO6iccuH.net
chkimgについてですが検索画像は大きいより小さい方が処理速いんでしょうか?
どういう検索方法なのかご存知の方居たらざっくりでいいので教えて貰えると嬉しいです

292:デフォルトの名無しさん
19/05/15 07:49:23.40 l0E6gxGG.net
>>273
なるほど、変数に格納するイメージなら分かりやすいです。
そういう仕様としてやってみます。
ありがとう!

293:デフォルトの名無しさん
19/05/15 07:59:26.04 AZdJp4Mp.net
>>274
イメージとしては解像度分の1ピクセルずつズラしながら単にビットマップ変数同士を比較してるだけ
なのでまず比較用の画像が小さくても大きくても最大試行回数は変わらない
例えば対象が解像度1920*1080のデスクトップ全体であればヒットしない場合の最大は約200万回ということ
(はみ出るところを省略してるかは知らない)
比較処理そのものはサイズで大いに影響があると言える
例えば100*100ピクセルの24ビットカラーであれば、3万byte、約30kbが完全一致するか比較が行われる
もちろん一回は1ミリ秒にすらならないがなんせ200万回もやれば馬鹿にならない
従って小さいほど速くなる
言うまでもなく検索画像より検索対象をデスクトップ全体ではなくウインドウ内に限定した方が遥かに速くなる
(可能なら範囲指定した方がさらに速い)
必ず見つかる状態なら試行回数以下で終わるからいいけど、出現待ちする場合なんかは毎回最大回数空回りさせるので遅くなる

294:デフォルトの名無しさん
19/05/15 23:05:42.88 NO6iccuH.net
>>276
理解出来ました
ありがとうございました

295:デフォルトの名無しさん
19/05/16 11:03:04.25 k6wqzKwn.net
Chkimgにおいて24bmpで画像認識させたのですが認識してくれませんでした
4重の別�


296:Xに撮ったクリックしたい箇所の画像認識、chkingx関数による曖昧認識、色幅を持たせるなどしても認識してくれません また、一回は認識したものの同じクエストに入ったのに2回目は認識しないということもあります これ以外の方法または自分の見落としなどはありますか?



297:デフォルトの名無しさん
19/05/16 11:07:54.44 /xtfCvGN.net
>>278
saveimgで保存して手を加えずchkimgしてもだめ?

298:デフォルトの名無しさん
19/05/16 11:13:35.45 k6wqzKwn.net
>>279
ある画像がランダム出現した時に画面全体から探して一致する、その画像をクリックしたいのでペイントに貼って

299:デフォルトの名無しさん
19/05/16 11:15:54.41 k6wqzKwn.net
>>279
ある画像がランダム出現した時に画面全体から探して一致する、その画像をクリックしたいのでペイントに貼ってトリミングしています
Saveimgでもトリミング出来ますか?

300:デフォルトの名無しさん
19/05/16 11:34:15.95 /xtfCvGN.net
>>281
x,y,幅,高さを指定してsaveimgすればいい

301:デフォルトの名無しさん
19/05/16 11:41:42.70 k6wqzKwn.net
>>282
やってみます!

302:デフォルトの名無しさん
19/05/16 19:48:50.75 zw/t/jBa.net
>>282
この方法でも2回目以降が出来ませんでした、chkimgxとの併用は指定範囲が有効ではありません、スタックトレースの取得に失敗って感じでエラー出ます…こちらも良ければ教えてください

303:デフォルトの名無しさん
19/05/16 20:00:17.42 zw/t/jBa.net
Chkimgxは色幅を持たせていたが故のエラーでした

304:デフォルトの名無しさん
19/05/17 01:32:37.00 a8AA4Bsn.net
スクリプトが悪い可能性は一切ないの?
そうでなければ画像の一部にエフェクトが掛っているか透過色があって完全一致しないとか

305:デフォルトの名無しさん
19/05/18 17:14:28.38 qzRA2hRY.net
しまった
メイン側でプログラム作ってからVPCに持っていったら解像度違うせいか画像認識しないわ…
vmwだとWQHD無いのねめんどーくさー

306:デフォルトの名無しさん
19/05/21 10:26:46.97 UcoHXcCc.net
Chkimgxって64bit版なんてないよね?

307:デフォルトの名無しさん
19/05/21 12:08:21.57 DJoW+AAC.net
もしあったとしてuwscと何の関係が?

308:デフォルトの名無しさん
19/05/21 21:50:55.46 9ncm2Kmj.net
ifb chkimg or chkimg or chkimg or のように横に長くor文を続けると見栄えが悪く、修正なども面倒なため、縦に綺麗に並べたいのですが改行するとエラー(or型があっていない)が出ます
ifb (~
~);
のようにカッコで括っても無理でした
綺麗にする方法はありますか?

309:デフォルトの名無しさん
19/05/21 22:00:10.45 GOukkBG2.net
>>290
SELECT - SELEND使えばどうだろう

310:デフォルトの名無しさん
19/05/21 22:01:42.81 pQ6gs7NX.net
<行結合>
 _ (アンダーバー)  // 行の最後に付ける事により次の行と結合させます

311:デフォルトの名無しさん
19/05/21 22:11:23.08 9ncm2Kmj.net
>>291
ありがとうございます!今回は行結合を使うことにしました、しかしselect文も場合分けする時に使えそうですし、自分の知らない関数だったので視野が広がりました

312:デフォルトの名無しさん
19/05/21 22:12:47.36 9ncm2Kmj.net
>>292
検索しても到底見つかることは無かったであろう答えをありがとうございます!おかげで綺麗なコードが書けます!

313:デフォルトの名無しさん
19/05/22 01:45:18.21 t4YpuTXH.net
>>290
一つのif/ifbに全部orで条件結合すると途中で見つかっても全部チェックするから条件増えるほどパフォーマンス悪くなるし
あり得るか知らないけど複数見つかった場合に座標の変数が書き換えられてしまうのでバグの温床にもなるから止めた方がいい
共通した処理を関数化するなりして以下のようにすればさほど可読性は悪くないと思う
ifb chkimg(A.bmp)
処理()
elseif chkimg(B.bmp)
処理()
elseif chkimg(C.bmp)
処理()
endif
あとSELECTはある特定の変数(関数の戻り値)の評価の列挙だから別の条件のchkimgには使え�


314:ネい



315:デフォルトの名無しさん
19/05/22 09:09:42.03 KgqzAKkh.net
>>295
option shortcircuit を使えばいいだけでは?

316:デフォルトの名無しさん
19/05/22 12:47:18.70 t4YpuTXH.net
>>296
短絡評価あるの知らんかった…ほんとよく出来てるなあ
ならまあ、後は好みでいいかな
自分は別々の処理させたりフラグ建てたりする事が多いから>>295みたいにしてるけど

317:デフォルトの名無しさん
19/05/22 19:54:39.43 Q2YhfS/Q.net
ifとifbって何が違うの?
>>295みたいにelseifと混ぜて大丈夫?

318:デフォルトの名無しさん
19/05/22 19:56:04.78 Q2YhfS/Q.net
ごめんぐぐったら変な仕様なの理解した

319:デフォルトの名無しさん
19/05/23 17:42:34.32 HnnhfQrk.net
HASHTBL型の変数を簡単にコピーする方法はありませんか?
HASHTBL a = HASH_CASECARE
a["asd"] = 100
HASHTBL b = HASH_CASECARE
b = a
とするとシンタックスエラーになってしまいます。
FOR文で回す方法しかありませんか?

320:デフォルトの名無しさん
19/05/24 01:28:29.43 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:デフォルトの名無しさん
19/05/24 01:30:21.06 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:デフォルトの名無しさん
19/05/25 16:57:36.33 kezAIt7g.net
>>301
回答ありがとうございます!
やはりFOR文で回す方法になるのですね。
HASHTBLを引数にする時は [] がいることを初めて知りました。
使用方法も合わせて分かりやすい回答ありがとうございました!!

323:デフォルトの名無しさん
19/05/26 07:21:07.00 gyA6d7Mz.net
noxで画面をスクロールするマクロを作りたいと思い、スワイプで動かそうと思い作って見ましたがダメでした。
DOSCMD("cd C:\Nox\bin & nox_adb shell input touchscreen swipe"+353 + 1107 + 353 + 250 )
アドバイスください。
追加で質問なんですがスワイプとドラックの違いがよくわかりません
スワイプは一回タッチして軽く放して動かす。ドラックはタッチしたまま動かす
であっているのでしょうか?

324:デフォルトの名無しさん
19/05/26 09:33:03.37 JiVdzwM6.net
>>304
ダメと言うのはどうなる?
…てかもしそのレスの通りのコマンドだとswipeの後にスペースないし、
その後の座標も全部スペースなしで連結されるからシンタックスエラーな気がするが

325:デフォルトの名無しさん
19/05/26 09:35:17.03 JiVdzwM6.net
>>304
スワイプとドラッグは大差ない
強いて言うならドラッグはタッチして対象を掴んでから自


326:由に動かす スワイプは最初に貯めなく、一定方向に動かす



327:デフォルトの名無しさん
19/05/26 10:51:33.10 G6snbdcx.net
androidをscrcpyというソフトを使ってでPCで自動化しています
BTN(LEFT,CLICK,,,)でクリックがされないことが度々あるのですが、待機時間を入れたり
BTN(LEFT,DOWN)BTN(LEFT,UP)のように記述したりしているのですが、失敗することがあります
操作の関係上、必要以上に待機時間を長くすることはできません。
失敗した時に画面を確認するとマウスカーソルはクリックする場所にキチンと移動しているようです
確実にクリックさせる方法はないでしょうか?

328:デフォルトの名無しさん
19/05/26 19:53:41.40 gyA6d7Mz.net
>>305
実行するとエラーは出ないのですが、何も起きません。
どう書けば動くのかわからないので、アドバイスください。

329:デフォルトの名無しさん
19/05/26 20:30:10.96 JiVdzwM6.net
>>308
エラーが出ないってのはエラー見てないだけでしょ
doscmdはあくまでコマンドプロンプト叩くだけだからコマンド内容が成功しても失敗してもエラーにはならない
その代わりコマンドプロンプトで叩いた時の出力が返り値になっているのでそれをprintなりすることで結果を確認できる
print doscmd(~)
しかしそんなことするまでもなく、まずdoscmdに突っ込もうとしてる文字列を見直しなって
それこそprintしたらわかりやすい
print (>>304のdoscmdの()の中身)
後は>>305に書いた通りなので以下略

330:デフォルトの名無しさん
19/05/26 21:15:47.46 gyA6d7Mz.net
>>309
Printで確認しながら書いたら動きました。 色々情報ありがとうございました
DOSCMD("cd C:\Nox\bin & nox_adb shell input touchscreen swipe "+ 353 + " " + 1107 + " " + 353 + " " + 250 )
これで動きました。

331:デフォルトの名無しさん
19/05/30 10:50:09.25 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

332:デフォルトの名無しさん
19/05/30 10:53:57.13 tA+gABtL.net
>>311
配列宣言を間違えました。
DIM a = 1,2,3 ではなく、DIM a[] = 1,2,3 になります。
この状態で aaaa["abs"] = a すると「次元数が合いません」のエラーになります。

333:デフォルトの名無しさん
19/05/30 12:47:43.35 aNGWRP0o.net
URLリンク(junjun777.hatenablog.com)
ググろう

334:デフォルトの名無しさん
19/05/30 14:11:44.19 DRIu++Kq.net
SafeArray使えば?

335:デフォルトの名無しさん
19/05/30 20:29:16.58 EoC6wIfp.net
>>314
なるほど
>>311

aaaa["abs"] = SLICE(a)
とすればあとはそのままいけるね
ケアレスミスの
FOR j = 0 TO (LENGTH(value) - j)

FOR j = 0 TO (LENGTH(value) - 1)
にする必要はあるけど
べつに配列の内容をJOIN()で保存して
SPLIT()で取り出して再配列化するとかいう必要はないのか
>>311
5ちゃんに書き込んだ行頭のスペースやタブは削除されるので
全角スペースにすれば字下げできる
uwscは字下げを全角スペースのままにしても実行可能

336:デフォルトの名無しさん
19/06/01 05:28:16.71 Rgk748+T.net
CMD = "cd D:\ChangZhi\LDPlayer & adb -s 127.0.0.1:5555 shell input tap 200 200"
DOSCMD(CMD)
エミュレーターの画面がタップされる。
次にDOSCMDで画像認識から得られた座標を変数に置き換えて
attack_x=g_imgx_x
attack_y=g_imgx_y
CMD = "cd D:\ChangZhi\LDPlayer & adb -s 127.0.0.1:5555 shell input tap " + (attack_x) + " " + (attack_y)
print CMD
DOSCMD(CMD)
こちらの場合だとタップされない。
printを見る限り座標自体は送られているようなのですが動作しません
どう弄ればいいのか正直分かりません。分かる方いたら教えて欲しいです

337:デフォルトの名無しさん
19/06/01 07:07:10.14 Rgk748+T.net
すいません自己解決しました
ウィンドウ側の座標とエミュレーター側の座標を勘違いしてました

338:デフォルトの名無しさん
19/06/05 05:31:25.89 PDrTjnI7.net
久々に使おうとしたところ
記録(R)ボタンで操作を記録しようとしたら
最初のウインドウ移動コード以降全く記録できませんがもう使えないのでしょうか
作者死亡の噂があるし…

339:317
19/06/05 05:50:47.86 PDrTjnI7.net
勘違いしてました すまそ

340:デフォルトの名無しさん
19/06/05 05:52:56.58 x4OhbciW.net
記録できない、(記録されていないので)有効データはありませんってことは良くあるってネットで話題沸騰中
低レベル記録にすればなんとかなるかも

341:デフォルトの名無しさん
19/06/05 07:53:42.20 PDrTjnI7.net
そうなんですね
高レベル記録にすると空っぽになってしまう

342:デフォルトの名無しさん
19/06/05 10:36:15.48 S7VTZIha.net
再インストールすれば直るよ

343:デフォルトの名無しさん
19/06/15 18:50:19.87 RDrVtj7Z.net
UWSC+Noxの環境で画像認識のマクロ使っているのですが
Noxを起動しマクロを動かしながら、別のゲームをフルスクリーンで遊ぶと動かなくなってしまいます。
確認した所ボーダレスもダメで動くのはウィンドウモードでは動きました。
殆ど URLリンク(qiita.com) ここのサイトを見て作りました
なにかいい手段はないでしょうか?

344:デフォルトの名無しさん
19/06/15 19:44:32.64 TdaUWTtt.net
別ゲーをフルスクリーンにすることでディスプレイの解像度変わって動作不良みたいな事なってそう

345:デフォルトの名無しさん
19/06/16 06:23:33.22 HmejiRXR.net
呼び出されたマクロの中にEXITEXITがあると呼び出しもとのマクロまで終了するの何とかなりませんか?

346:デフォルトの名無しさん
19/06/16 06:35:40.69 POuLEWBj.net
EXITEXITを使わなければいい
そのスクリプトの構造が悪い

347:デフォルトの名無しさん
19/06/16 07:02:22.57 NHc+bxmH.net
起動時パラメータでEXIT/EXITEXIT実行を切り分け

348:デフォルトの名無しさん
19/06/16 08:15:28.28 HmejiRXR.net
>>327
なるほど、そういう方法がありましたね。
ただEXITEXITの挙動にどうも納得がいかないですね。
レスには感謝いたします。

349:デフォルトの名無しさん
19/06/16 08:48:29.51 rf1Bxp8m.net
うっそーん…

350:デフォルトの名無しさん
19/06/16 09:58:41.01 EZeI/CqZ.net
>>328
CALLしたスクリプトは呼び出し元にとりこんで実行されてるだけだからね
EXITEXITで呼び出し元が終了するのは通常通りの挙動
どうしてもEXITEXITで呼び出し元終了させたくないなら
EXECとかDOSCMDから同期フラグ立てて呼び出すとかしないと無理

351:デフォルトの名無しさん
19/06/16 12:50:13.33 VTXg1tr4.net
どこに納得がいかないのか興味があるな…そもそもなんでEXITEXIT使ってるのか
てか呼び出し元も終了させたいときはどうするつもりなのか

352:デフォルトの名無しさん
19/06/16 14:29:18.86 HmejiRXR.net
>>331
マクロの中でサブルーチンがあり、そこでサブルーチンのみを終了するときはEXIT,
マクロ自体を終了するときはEXITEXITを使っています。
単独でこのマクロを動かすときは正常に動きます。しかし、他のマクロから呼び出し
ループさせようとしても1回動いて呼出し元のマクロごと終了してしまうのですよ。

353:デフォルトの名無しさん
19/06/16 14:56:07.49 VTXg1tr4.net
>>332
うーん?
サブルーチン側にEXITEXITある時点で作りが悪いよと言ったら怒られるかな
ぶっちゃけEXITEXITなんてGOTO並みの超限定的な場面でしか使うべきじゃない命令だし
サブルーチンは関数にして返り値出してメインで EXITすればいいだけだよね

354:デフォルトの名無しさん
19/06/16 15:12:02.08 VTXg1tr4.net
例えばだけどboolean型にして
今EXITのところと最後はRETURN TRUE
EXITEXITのところはRETURN FALSE
呼び出し側はこんな感じで
IF !関数名() EXITEXIT
逆でもいいかな


355:、まあお好みで



356:デフォルトの名無しさん
19/06/16 15:15:47.43 VTXg1tr4.net
連投すまん
呼び出し側はEXITすれば良いって話なのにEXITEXITにしてしまったEXITに読み替えてね

357:デフォルトの名無しさん
19/06/16 15:22:52.91 HmejiRXR.net
>>333
作りの悪いマクロですみません。
レスには感謝です。

358:デフォルトの名無しさん
19/06/17 06:07:04.67 0Q+iBl83.net
EXILEに空見した

359:デフォルトの名無しさん
19/06/17 06:23:43.98 nD3RS79c.net
EXILEって気持ち悪くて大嫌いだわ

360:デフォルトの名無しさん
19/06/28 23:06:18.54 5LM4ivGb.net
NOXであるゲームにあるミニゲームの釣りマクロを作ったのですが、
画像発見からクリックまでにラグがあるみたいでクリックしたときには、釣り上げるタイミングを逃しています。
CMD0 = "cd C:\Nox\bin & nox_adb shell input touchscreen tap " + (350) + " " + (1030)
///////ヒットしたら釣り上げる
ifb CHKIMGX("釣りヒット.bmp", winid, 115, 430, 230, 555, Detect_num, Threshold_delta, Target_color)
print "ヒット" //画像を発見したらログに表示
DOSCMD(CMD0) //Noxに操作を送信
Sleep(0.1)
こんな感じで作ってあるのですが、なにかいいアドバイスはありませんか?

361:デフォルトの名無しさん
19/06/28 23:24:25.29 4HrFS9y+.net
せっかくの釣りゲームなのにそんなことして楽しい?

362:デフォルトの名無しさん
19/06/29 09:44:30.14 Of7sgcsJ.net
何処で遅延発生してるのかわからないけど
ChkImgXで遅延発生してるならマッチングの範囲絞るとかマッチング画像トリムして小さくするとか
ChkImgXエアプだから出来るかはしらない

363:デフォルトの名無しさん
19/06/29 11:16:41.58 eEFCox6T.net
>>339です
調べたら、adbでの操作は遅延が出るみたいでそれが原因でした
btn(left,click,400,140,10)
にしたら大丈夫でした

364:デフォルトの名無しさん
19/06/30 13:11:18.40 7IuFi4Dp.net
NOXで画像認識でマクロ使っているのですが、
NOX解像度の設定が720x1280でモニタ解像度が1920x1280のためNOXの実際のウィンドウサイズは581x1060なっているため
画像認識をしても座標がずれてしまいます。今は画像認識したら予め決めた座標をクリックするようにしています
NOXの解像度を540x960にすると問題なく動きます
NOXの解像度を変更しないで、座標のズレを直す方法はないでしょうか?

365:デフォルトの名無しさん
19/06/30 13:48:02.61 LiwPiLEo.net
>>343
正確なサイズが分かってるなら比率を掛けるだけでは?(タイトルバー分忘れないように)
モニタの縦に収まるサイズで問題ないならそれでいいじゃんとも思うが

366:デフォルトの名無しさん
19/06/30 16:35:49.95 9VVtcacA.net
ゲームの座標はクリックしてそこのドットの座標とカラーなりなんなりを記憶・登録するようにすると便利だよ
どのゲームやアプリでも使いまわしが利くしね
今のところメジャーな3Dゲーム4作品程度にしか使ってないけど、自動戦闘はすべてpeekcolorで済んでる
このスレで人気?のchkimgはいかにも遅そうなので出番がない

367:デフォルトの名無しさん
19/06/30 16:56:27.56 VDp+hLNV.net
Botかよ。
そんな使われ方じゃ作者が可哀想だな。

368:デフォルトの名無しさん
19/06/30 17:10:40.85 9VVtcacA.net
>>346
可哀想も何も、後から画像関係の関数がわざわざ増強されたのは作者も認知してるってこった
私はその前から同様の機能を拡張して使っていたので新関数を使ってないがね

369:デフォルトの名無しさん
19/06/30 19:45:50.69 VDp+hLNV.net
>>347
それとBotと何の関係が?

370:デフォルトの名無しさん
19/06/30 20:46:18.95 a2qR2cp+.net
>>348
役立たずは黙ってろ

371:デフォルトの名無しさん
19/06/30 21:32:04.04 nMEM26ki.net
仮想マシンでUWSC�


372:gう際に uwsファイルや画像認識用の画像がネットワークドライブにある場合 フルパス指定しても、「Not found 中断しますか?」と聞かれ 画像認識ができません。パスにはスペースは入っていませんが、日本語は入っています。 コマンドプロンプトでネットワークドライブをZに割り当てるなど いろいろ試してみましたが、解決には至りませんでした。 ファイルが大量かつ、仮想マシンが何台もあるので、コピーなどはできません。 どなたか解決策を教えていただけないでしょうか。よろしくお願いいたします。



373:デフォルトの名無しさん
19/06/30 21:40:49.75 nMEM26ki.net
>>350 です。
書き忘れていました。仮想1台1台別のuwsを使用しています。
使う画像はすべて同じなので、画像をまとめているファイルは別にあり
パスを指定しなければなりません。uwsと画像が同じフォルダにある場合でも
同じような現象が起きます。

374:デフォルトの名無しさん
19/07/01 02:10:35.83 BhUQI10d.net
試してみて
ネットワークをドライブ名にマップした場合でも
そのパス名に日本語が入っていても(表のように0x5Cが含まれている文字も含め)
問題は起こらななかった
CHKIMG()に渡すパス名が "\\machine\folder\表現\a.bmp"
のようなネットワークパスだとしても有効だった
なにか勘違いしているだけで
単純にパス名が間違っているのではないか

375:デフォルトの名無しさん
19/07/01 02:48:36.99 g5QsZuxD.net
例の記事でnoxマクロが誰でも組めるようになったせいでレベルの低下が著しいな

376:デフォルトの名無しさん
19/07/01 07:49:38.60 O1pDJEnN.net
ファイルパス・ユーザー名など、システム関係に、ASCII 以外を使ったらダメ!
半角英数字(英小文字のみ)と、アンダーバーだけを使うと安全
外人の作ったアプリは、sjis を想定していないから!

377:デフォルトの名無しさん
19/07/01 09:50:46.62 Ud6nL9Ft.net
ネットワークドライブでも問題ないし、Googleドライブでも問題ない
ただ意識せずに毎秒画像見に行ってたせいで転送量がすごい

378:デフォルトの名無しさん
19/07/05 12:06:58.79 alcGemYM.net
はじめまして、このミジンコ誰か教えてください。
noxにてadbを使ってバックグラウンドにて動作するマクロを作成しようと思っております。
単純なタップやスワイプ等のコマンド送信は出来たのですが、画像認識(chkimg)のような仕組みは可能なのでしょうか?
また可能ならどのようなソースの書き方をすればいいのか教えて頂けませんでしょうか?
よろしくお願いします

379:デフォルトの名無しさん
19/07/05 12:10:55.06 S/iigIKp.net
このスレもしくは前スレに同じような質問や実践的内容が書いてあるよ

380:デフォルトの名無しさん
19/07/06 11:03:00.32 szQx9Drp.net
すいません!pro版でRECIEを使おうとしたらL18が存在しません とでるのは、割れだからでしょうか?それとシリアルは必ず17桁でしょうか?

381:デフォルトの名無しさん
19/07/06 14:57:38.96 s7rosYjh.net
>>358
割れだから

382:デフォルトの名無しさん
19/07/06 15:40:43.73 szQx9Drp.net
>>359
そのあと正式な登録がされてません
とでるんですが

383:デフォルトの名無しさん
19/07/06 15:48:34.88 6ShlGEgv.net
よくまあ割れの質問なんかするな

384:デフォルトの名無しさん
19/07/06 16:19:04.02 f5b28dyd.net
割れ割れによる割れ割れのための割れ割れの政治

385:デフォルトの名無しさん
19/07/06 16:30:15.77 1YLcU5Mg.net
割れだからって言われて、それに対して正式な登録が~って聞く意味が分からん
正式な登録してから出直してこい

386:デフォルトの名無しさん
19/07/06 16:33:01.72 o0MaAedS.net
どうせ釣りだろ
はい釣れた釣れた

387:デフォルトの名無しさん
19/07/06 18:05:48.63 aan9FGim.net
えっ、釣りだったの!?
もう通報しちゃった…

388:デフォルトの名無しさん
19/07/19 1


389:7:51:44.45 ID:+VZsoYG6.net



390:デフォルトの名無しさん
19/07/19 18:04:34.79 TdSe3tZb.net
windowID取得してstatusで取れない?

391:デフォルトの名無しさん
19/07/19 19:08:09.92 eawjkefv.net
話が見えないなあ
数字ってのは座標?
別窓ってのはまさかサブディスプレイ?
adbというかAndroid内で座標なんかズレやしないんだから外側からの与え方、取得の仕方に問題があるだろう
ウインドウ指定で取らずデスクトップ基準で取ってるのでは?
何言ってるのかわからんレベルならスクリプト貼ってくれた方が話しがはやい

392:デフォルトの名無しさん
19/07/20 06:23:49.81 5yy6Rgji.net
>>368
ありがとう、まさしくその通りでデスクトップ基準で取ってたからフルスクリーン後にタップが行ってなかったみたいです。
現在とりあえず動かすことが出来ました。ありがとうございました

393:デフォルトの名無しさん
19/07/29 10:35:08.27 OnS04pQR.net
UWSC総合スレという名でディスコードのコミュニティを作ってみました。
これから仕事なのでまだ何も記載してませんが、よかったらどうぞ
URLリンク(t.co) 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01)


394:デフォルトの名無しさん
19/07/29 20:31:52.42 nFx6ozTz.net
メアド集めて何する気だよ?

395:デフォルトの名無しさん
19/07/29 21:41:55.00 CSar0obt.net
URLリンク(i.imgur.com)

396:デフォルトの名無しさん
19/07/30 20:50:17.33 P8HnQUDX.net
LDplayerでゲームを起動し、バックグラウンドで画像認識した場所をクリックという動作をしたいのですがうまくいきません。
ゲームが前面に来ている時は、画像認識して座標は取ってるがクリックせず
ブラウザなどで隠れ裏面に来ている時は画像認識を失敗しています。
IDが取れてないか最初のMOUSEORG指定がおかしいのかとおもうのですが、見てもらえないでしょうか
w_id = getid( GET_ACTIVE_WIN )
mouseorg( w_id ,2 ,MORG_BACK )

w_id = getid( "ウィンドウ名" ) //w_id にアクティブウィンドウを格納
Hnd = GETCTLHND( w_id, "RenderWindow")
MOUSEORG(Hnd, MORG_DIRECT, MORG_FORE)
どちらを使っても上記と同じ症状です
OSはWindows10 画像認識にはchkimgxを使っています。
似たような処理を作ったことある方、解決策ご教授頂けないでしょうか。

397:デフォルトの名無しさん
19/07/30 20:58:37.57 tS2fmUug.net
LDplayerは使ったことがないからわからないけど
バックグラウンド操作が効かないソフトもある
似たような過去スレに似たような質問たくさんあるから一読してみて

398:デフォルトの名無しさん
19/08/02 18:41:27.29 R+vlhR/4.net
NOX用のマクロを作ろうと思ってるのですが、画像認識でつまづいています。
>>245のサイトを参考にテスト用のuwsファイル
URLリンク(dotup.org)
を走らせた結果が
URLリンク(dotup.org)
です。
bmpファイルはsaveimgで取得したもので、PCの解像度は1920×1080、NOXの解像度は540×960、ウィンドウサイズの復元もしてあります。
この場合画像認識が上手くいかない原因としてどのような事が考えられますか?

399:デフォルトの名無しさん
19/08/02 19:40:31.57 R+vlhR/4.net
>>375
ちなみに
IFB CHKIMG("テスト用.bmp")
MSGBOX("画像認識に成功しました。<#CR>G_IMG_X = " + G_IMG_X + "<#CR>G_IMG_Y = " + G_IMG_Y)
で画面全体を検索するとNOX上の画像がきちんと認識されます。

400:デフォルトの名無しさん
19/08/02 20:36:33.96 zrwPHBgv.net
あのさあ
コード画像で


401:貼るとか、試すのに全部手打ちさせる気? 判定画像もどんなのか分からんし なので全く試してないが単に縦横間違ってるとかそんなレベルじゃなかろうね



402:デフォルトの名無しさん
19/08/02 21:02:16.41 R+vlhR/4.net
>>377申し訳ないです。
長くなってしまうので画像でと思ったのですが、言われてみれば仰るとおりでした。
改行数の関係で少し変わりますが下のコードです。
winid = getid("NoxPlayer") //ゲームウィンドウを名前で検索して取得
winPosX = STATUS(winid,ST_X)
winPosY = STATUS(winid,ST_Y)
winsizeX = STATUS(winid,ST_WIDTH)
winsizeY = STATUS(winid,ST_HEIGHT)
print "位置X 位置Y 幅 高さ"
print winPosX + " " + winPosY + " " + winsizeX + " " + winsizeY
CALL ChkImgX.uws
x1 = 0
y1 = 0
x2 = 540
y2 = 994
Detect_num = 1
Threshold_delta =20
Target_color = -1
startup_chkimgx() //CHKIMGX関数開始
While True //Wendまでの処理を繰り返す
ifb CHKIMGX("テスト用.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
print "テスト用を発見しました。" //画像を発見したらログに表示
else //上記の条件全てに当てはまらなかった場合
print "画像が見つかりません" //メッセージを出す。
endif //ifbの処理の終了地点
sleep(3) //()内の秒数待機
Wend

403:デフォルトの名無しさん
19/08/02 21:04:55.14 R+vlhR/4.net
>>377
デスクトップ左端に
URLリンク(dotup.org)
こう置かれてるNoxのAppCenterのアイコン(URLリンク(dotup.org))で認識させてます

404:デフォルトの名無しさん
19/08/02 22:37:11.99 zrwPHBgv.net
うーん? コードは違和感ないけど
試しにwinidじゃなくて0を与えるとどうなる?
※chkimgと同じく全画面という指定
後はsaveimgじゃなくてprintscreenで画像作ってみるとか

405:デフォルトの名無しさん
19/08/02 23:11:18.56 R+vlhR/4.net
>>380
winid = 0って書き方で大丈夫ですかね?
プリントスクリーンで作ってwinid = 0で試してみると認識されたので画像位置をクリックするように書きえ変えてみたのですが実際にはクリックされませんでした。

406:デフォルトの名無しさん
19/08/02 23:14:15.77 R+vlhR/4.net
>>380
winid = 0
CALL ChkImgX.uws
x1 = 0
y1 = 0
x2 = 0
y2 = 0
Detect_num = 1
Threshold_delta =20
Target_color = -1
startup_chkimgx() //CHKIMGX関数開始
While True //Wendまでの処理を繰り返す
ifb CHKIMGX("テスト用.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
print "テスト用を発見しました。" //画像を発見したらログに表示
deffence_x=g_imgx_x
deffence_y=g_imgx_y
//画像認識で取得した値を代入してDOSCMDで送る内容を作成
CMD = "cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap " + (deffence_x) + " " + (deffence_y)
print CMD //CMDの内容を確認
DOSCMD(CMD) //Noxに操作を送信
else //上記の条件全てに当てはまらなかった場合
print "画像が見つかりません" //メッセージを出す。
endif //ifbの処理の終了地点
sleep(3) //()内の秒数待機
Wend
これを走らせると
テスト用を発見しました。
cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 1358 556
と出るのですが実際にはクリックされてない状況です。

407:デフォルトの名無しさん
19/08/03 00:23:17.82 /xlhahKC.net
windid = 0
のときはデスクトップの座標
winid が getid()で得た値で
それが1以上なら
そのウィンドウの座標
この場合はwinidに0を渡して返ってきた座標からは
ウィンドウのx,y位置とさらに実際の表示領域までの
枠幅を引いてやらないといけない

408:デフォルトの名無しさん
19/08/03 00:49:19.44 /xlhahKC.net
getid()でとっていた値が対象ウィンドウの
ものでなかった場合を除いてだが
winidに0を指定しただけで認識できるというのは
不思議なので検索領域が広くなったことで単に
違った箇所が誤認識されているのかも

409:デフォルトの名無しさん
19/08/03 01:11:14.59 U4dG53It.net
別にwinid=0じゃなくて直接0で良かったんだけど、まあいいや
で0と画像の作り方両方同時にするんじゃなくて片方ずつではどう?
問題を切り分けたい
ちなみに仮に今の方法でadbにしたいならその座標からウインドウの座標を引いて後タイトルバー分も引けば出来ることはできる

410:デフォルトの名無しさん
19/08/03 01:12:38.38 lOZq4lm8.net
>>384
winid=0の時はNoxを移動しても移動先にあるアイコンの座標を出してくれるので誤認識って事は無さそうです
どうもgetid()で対象ウィンドウの値が取れていない気がするのですが



411:>>379の画像のようにNoxの左上にNoxPlayerとあればgetid("NoxPlayer")っていう認識で間違ってないですか? エミュレーターの追加をしていないのでこのNoxPlayerしかないのですが…



412:デフォルトの名無しさん
19/08/03 01:19:42.46 Ks0WXhsa.net
>>383が既に指摘してるけどgetidの戻り値はいくつなのよ

413:デフォルトの名無しさん
19/08/03 01:22:44.43 U4dG53It.net
>>387
>>375
ウインドウは取れてる
chkimgx時に何か変なようだけど何かなあ
ウインドウがアクティブじゃなくてもいいはずなんだけどね

414:デフォルトの名無しさん
19/08/03 01:54:21.96 lOZq4lm8.net
>>385
0にする前のコードでsaveimg、WinShot、プリントスクリーンで試しても変わらずでした
逆に0にした後はどの方法で作った画像でも認識はされます
皆さん色々とご意見ありがとうございます
こういうプログラム的な事をするのが初めてなので煩わせてしまって申し訳ない

415:デフォルトの名無しさん
19/08/03 01:57:35.42 /xlhahKC.net
>>386
>Noxの左上にNoxPlayerとあればgetid("NoxPlayer")っていう認識で間違ってないですか?
たいていそうだが、必ずそうだとはいえない
ヘルプのGETIDを見ると
タイトル: 識別したいウィンドウのタイトル (タイトルの一部分だけでもOK)
なので
とれるIDは
"NoxPlayer_1.txt"や"NoxPlayerについて"などのうち最初にみつけたもの
また
" "などが含まれているのに気づかない場合もある
また
>>379 の画像を見ると
Windowsの標準的な形式のウィンドウスタイルではなく
タイトルバー部分に関して独自の描画をしているようなので
内部的なウィンドウタイトルがNoxPlayerで始まっていない可能性もある
GETID()でとった値の
STATUS(id,ST_X),STATUS(id,ST_Y)などはすでに見ていて
それらしい値になっているのだと思うが
いちおう
STATUS(id,ST_CLASS)がそれらしい名前になっているか
見たほうがいいかも
さらに
GETALLWIN( )
でとったリストの中に"NoxPlayer"で始まるウィンドウタイトルがほかにないことを
確かめれば完璧

416:デフォルトの名無しさん
19/08/03 02:38:29.78 lOZq4lm8.net
>>390
fukidasi("ゲームウィンドウ上でSキー") //Sキー入力待ちの告知
While !(GETKEYSTATE(VK_S)) //Sキー入力まで無限ループ
sleep(0.1)
Wend
fukidasi() //入力待ち告知の吹き出しを消す
winid = getid(GET_ACTIVE_WIN) //Sを押したウィンドウでIDが取得されるので確実に取得できる
cls = STATUS(winid, ST_class)
title = STATUS(winid, ST_title)
print "ウィンドウ名は" + title
print "ウィンドウIDは" + winid
print "ウィンドウクラス名は" + cls
の結果が
ウィンドウ名はNoxPlayer
ウィンドウIDは1
ウィンドウクラス名はQt5QWindowIcon
n = GETALLWIN()
PRINT "ウィンドウの数:" + n
IFB n > 0
FOR i = 0 TO (n - 1)
PRINT ALL_WIN_ID[i] + ":" + STATUS(ALL_WIN_ID[i], ST_TITLE)
NEXT
ELSE
PRINT "ウィンドウが見つかりませんでした"
ENDIF
で全ウィンドウを取得してみた所NoxPlayerは一つだけでした
にもかかわらず0以外では認識されずどうしたものかと…

417:デフォルトの名無しさん
19/08/03 03:03:14.23 U4dG53It.net
さて仕方ないということで>>378のままで実行してみると普通に成功するね
(テスト用を発見しました。が3秒毎に出る)
となると基本的なところを見直そう
環境としてはWindows10? 念のためUWSCのバージョンは5.3.0.2?
あと念のためNoxの設定でレンダリングモードを変えたりしてみた?
自動化ツールUWSC使いよ集まれ21 756- によれば一部の環境でOpenGLではうまく動作しないなどあるらしいよ
(Windowsなのかグラボ依存なのかはっきりとはしない)

418:デフォルトの名無しさん
19/08/03 08:20:35.61 OFX4DJO3.net
>>391
>ウィンドウクラス名はQt5QWindowIcon
このクラス名を見る限り実態は別にあるんじゃなかろうか

419:デフォルトの名無しさん
19/08/03 08:43:36.26 OFX4DJO3.net
>>393
あ失礼
Qt5QWindowIconのクラス名はこのスレ�


420:ノも過去に出てきていた それであっているようですね



421:デフォルトの名無しさん
19/08/03 12:32:06.93 lOZq4lm8.net
>>392
すみません、理由は分からないのですが動くようになりました
というのも訳あってWin7にダウングレードしていたのですが、Win10に戻した所画像が認識されるようになりました
ご協力いただいた皆様本当にありがとうございました

422:デフォルトの名無しさん
19/08/04 13:50:12.50 z/hKv82K.net
画像認識のループマクロで画像が認識されず一定回数ループした場合に別の処理をさせたいのですがどのような手法をとればいいのでしょうか?

423:デフォルトの名無しさん
19/08/04 14:43:10.09 YK9Zosi+.net
画像が認識できないのとループ回数で処理分けたいのは別の話だし手法というほどもない
自分がやるのならwhileによるループ内に画像認識とカウンタで分岐するifなりselectなりで作るが
後のことはそのうまくいかないスクリプト見ないと何が悪いのかは分からん

424:デフォルトの名無しさん
19/08/10 04:37:33.43 7UvH5Dc6.net
>一定回数ループ
本当にやりたい処理はそうじゃないだろう

425:デフォルトの名無しさん
19/08/25 02:21:47.46 02nOh0YG.net
noxにchkimgx走らせたらたまにx:-1332736054 y:399917186
とかとんでもない座標が帰ってくるのですが原因わかりません助けてください

426:デフォルトの名無しさん
19/08/25 04:06:47.43 YF3o46xU.net
分からないものは分からないで済ませる方法を考えよう
たまに変になるだけならxyが指定範囲外ならもう一度走らせればいい

427:デフォルトの名無しさん
19/08/26 14:35:17.89 yberui11.net
確かにそうですね・・・異常値の検知やってみますありがとうございました

428:デフォルトの名無しさん
19/08/26 22:00:32.81 D4IbCpMk.net
DOSCMDを管理者として実行する方法ありますか?Windows7です

429:デフォルトの名無しさん
19/08/26 22:10:52.63 mEUMz2+C.net
そのままググれ

430:デフォルトの名無しさん
19/08/26 22:21:25.54 D4IbCpMk.net
UWSC.exeの設定を変更したあとUWSCを再起動してなかったわ
ありがとう

431:デフォルトの名無しさん
19/08/31 15:41:17.68 /dYnoZCL.net
とあるフリーゲームのセーブデータのバックアップを取りたいのですが、1時間毎にファイルサイズを比較して、変化があればバックアップを取るということをしたいです。
(現在はファイルサイズの変化に関わらずバックアップを取るようにしているため、容量がどんどん増えています)
ですが、ファイルサイズの取得方法がググってもイマイチわかりませんでした。
何方か教えていただけませんか?

432:デフォルトの名無しさん
19/08/31 16:30:13.80 7TXshm9s.net
BETWEENSTR(doscmd(“for %z in (ファイル名) do echo %~zz”), “<#CR>”, “<#CR>”, -1);
試してないので予めごめん。

433:デフォルトの名無しさん
19/08/31 17:14:37.69 /dYnoZCL.net
>>406
親切にありがとうございます。ダブルクォーテーションを半角に直して、コマンドプロンプトを直接叩くと数字が出てくるのですが、UWSCで
PRINT BETWEENSTR(doscmd("for %z in (ファイル名) do echo %~zz"), "<#CR>", "<#CR>", -1);
とすると、『ECHO は <ON> です。』と出てきて、数字になりません。どうしたらいいでしょうか。

434:デフォルトの名無しさん
19/08/31 17:25:18.95 /dYnoZCL.net
自己解決しました。回答ありがとうございました!

435:デフォルトの名無しさん
19/08/31 18:08:17.65 0Yc9lQY2.net
uwsc使う必要ないような…?

436:デフォルトの名無しさん
19/09/01 19:24:18.75 5mFrqnue.net
すみません、以前から同じ問題に悩まされていて、未だに原因が分かりません。
UWSCでandroidを自動化しており、scrcpyというソフトでPCから操作しています。



437:クリックがうまくされないことが多く、待機時間など入れても全く解決しないのですが、 クリックの前に 「print "クリックします"」という記述を入れると問題なくクリックされるようになります。 このような記述を無意味に入れたくはないのですが、原因は何なのでしょうか?



438:デフォルトの名無しさん
19/09/01 19:46:09.23 5mFrqnue.net
追加です。
全く同じスクリプトでその症状がWindows10のみに出ます。
Windows7ではprintの記述がなくても問題なくクリックされます。
何かPC側の設定でそのような問題が起きる項目があるのでしょうか?

439:デフォルトの名無しさん
19/09/01 19:46:25.58 zpdGYnJT.net
問題が再現するスクリプト貼ってくれよ
あと環境やらもね

440:デフォルトの名無しさん
19/09/01 20:13:35.68 5mFrqnue.net
NGワードやら、改行が多すぎるやらでスクリプトは貼れないです。

441:デフォルトの名無しさん
19/09/01 20:29:24.70 5mFrqnue.net
色々検証してみましたが、PRINTでなくも関係ないところを一回クリックすると動作するようです。
なのでBTN(LEFT,CLICK,,)を2回連続して書くと一回クリックされます。
もしくは10秒以上の待機を入れればクリックされました。こちらは待機時間が長すぎて実用性がありません。

442:デフォルトの名無しさん
19/09/01 20:41:43.66 N1GXnBlH.net
そうですか

443:デフォルトの名無しさん
19/09/01 21:20:42.64 zpdGYnJT.net
まあ、Windows10だとそういう問題が多々ある
更新止まってるソフトだし解決しない
まあ、幸いAndroidの操作ならadbという手があるのでbtnの代わりにdoscmdでadbコマンドに置き換えればいいよ

444:デフォルトの名無しさん
19/09/01 21:39:50.56 5mFrqnue.net
ありがとうございます。色々調べても同じような解決方法しかないみたいですね。
次はadb shell input touchscreen tap x yを試してみたいと思います。

445:デフォルトの名無しさん
19/09/02 09:23:16.27 IEOCJvHA.net
サウンドで「プログラムの起動」に何かの音付けると分かるけど
win10って見えないプログラムがしょっちゅう起動してる?から
フォーカスを奪われたようになってるんでない

446:409
19/09/02 15:24:43.08 y60Hvlvu.net
>>418
ありがとうございます。
My Window Loggerというソフトを使って調べてみましたが、
フォーカスは外れていないようです。

447:デフォルトの名無しさん
19/09/09 11:38:19.09 0frhp+Tu.net
スレチかもしれないんですが、UWSCのスクリプトファイルが複数あって、同じ個所を同時に修正するようなソフトってないですか?
WinMergeを使っていますが、3個までしか同時編集できません。

448:デフォルトの名無しさん
19/09/09 11:38:51.09 TLffwesQ.net
関数化する

449:デフォルトの名無しさん
19/09/09 12:17:09.85 eI5EZMSU.net
関数化というか同じという箇所を別ファイルに切り出してcallするだけでもいい
まあ、変数の管理があるので関数化が望ましいかもだけど

450:デフォルトの名無しさん
19/09/12 14:37:32.43 pwiI+xHT.net
今まで使ってた物がwin10アプデ後動かなくて調べたら、原因はわかったんだけど、対処法がわからないのでアドバイスください
URLリンク(qiita.com)
ここのサイトを参考に作ったもので、「サンプルコード(完成形)」の画像を発見したあとの処理にBTN関数を入れると反応がありません。
原因は「MOUSEORGによる補正」の
MOUSEORG(winid,MORG_DIRECT,MORG_FORE)
が原因みたいです。
MOUSEORG関数について読んだのですが、正直良くわかりませんでした。
削除すれば一応動くのですが、どうしたら良いでしょうか?

451:デフォルトの名無しさん
19/09/12 15:12:59.56 psJkeShP.net
過去にもそれ何度か話題になってるけど直接的な解決方法はなかった気がする
NoXとかならadbで接続してタップするコマンド送信するとか

452:デフォルトの名無しさん
19/09/12 18:50:26.13 IcXkdgTx.net
常にデスクトップに表示してマウス取られていいなら消せばいい
それが嫌なら記事の通り

453:デフォルトの名無しさん
19/09/12 19:48:01.48 pwiI+xHT.net
>>424
そうなんですね。情報ありがとうございます。

454:デフォルトの名無しさん
19/09/14 18:38:20.96 J9OvsDUU.net
あいまい検索できるCHKIMGXって使うたびにstartup_chkimgxとshutdown_chkimgxではさまないといけないの?
startup_chkimgx()
while true
<処理>
wend
shutdown_chkimgx()
て形ではさむの1回でもあいまい検索できてる気がするんだけど
<処理>のところにいくつもchkimgxて書くこと考えると毎回はさむの大変なんだけど楽なやり方ある?

455:デフォルトの名無しさん
19/09/14 19:00:58.02 suhfvUA6.net
できてりゃいいし、気になるなら何やってるかスクリプトお読みなさいよ

456:デフォルトの名無しさん
19/09/14 19:29:28.42 T/fmJAyy.net
これはもはや初心者ではなくて考えることを放棄した猿

457:デフォルトの名無しさん
19/09/16 00:21:03.12 J++fziTo.net
メールアドレスをEXCELからIEのアドレス欄にコピペしようとしたら、コピペ出来ないどころか右クリックもきかない場合はコントロールCもダメなときは、どうすれば良いでしょうか?

458:デフォルトの名無しさん
19/09/16 02:24:56.23 c545q6Mo.net
python勉強してuwscでやってたこと移行していってるけど
chkimgxってめちゃくちゃ使い勝手良かったんだなー
うまくここまでいい具合のもの作れないや

459:デフォルトの名無しさん
19/09/16 03:46:26.17 d0MhJ3Yl.net
chkimgxに相当する物が無いのか
人工知能やweb巡回ロボなどで注目されていから
Pythonやってみようかと思っているのに

460:デフォルトの名無しさん
19/09/16 06:36:15.46 shGVxZhQ.net
>>430
シートの保護を解除する
>>431,432
ただのopenCVラッパーなので同じように関数化すれば同じ使い勝手だが…?

461:デフォルトの名無しさん
19/09/16 09:02:03.26 J++fziTo.net
>>433
ありがとうございます。
やってみます

462:デフォルトの名無しさん
19/09/17 09:29:48.59 Qlpvvbbr.net
OpenCVそのままだね、あいまい検索もパターンマッチングの閾値さげるだけ
連番ファイル名のあいまいとか細かい処理は自分で追加しなきゃいけないけど
name, ext = os.path.splitext(FileName)
multi = glob.glob(name + '.[0-9]' + ext)

463:デフォルトの名無しさん
19/09/17 12:15:59.14 W7Brc645.net
画像の特定の色指定してマッチングとかは?
まあここらへんまで実装するのがただのuwscユーザーとしては難しいって意味じゃないの

464:デフォルトの名無しさん
19/09/17 23:07:48.56 Qcff0eSx.net
何が難しいのかは本人以外には分からんが難しくたってやりゃできるお手本あるんだからその内できるだろ

465:デフォルトの名無しさん
19/09/21 15:31:11.62 MHWtiGlt.net
質問失礼します。
ifb chkimg("画像名",0,,,,,,IMG_MSK_BGR4)=True
SLEEP(2)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
SLEEP(1)
Else
endif
で画像をクリックしているのですが目標の画像のすぐ下をクリックする方法ってありますでしょうか?
目標の画像が見つかれば座標に関係なくその画像の下にカーソルが少し移動してクリックするといった感じです。
よろしくお願いします。

466:デフォルトの名無しさん
19/09/21 15:35:02.99 idUljkgM.net
あるんじゃない?
元々そういうソフトだし

467:デフォルトの名無しさん
19/09/21 15:47:33.83 mk38kF2N.net
画像の下とはどういう意味か

468:デフォルトの名無しさん
19/09/21 15:48:10.01 d3d5sbQS.net
BTNの前にいったん適当な変数へG_IMG_Yを
コピー代入し、それをずらしたい量だけ増加させてから
その変数でBTNを呼ぶ、という単純な話ではなくて?

469:デフォルトの名無しさん
19/09/21 18:30:07.78 VtT+26ja.net
検索画像の座標に関係あるのかないのかどっちなんだ
クリックするかの判定に画像使ってるだけで実際クリックするボタンの位置固定がなら
そもそもg_img_x/y使わず、クリックしたい場所を固定値なり別の変数/定


470:数にしたらいい



471:デフォルトの名無しさん
19/09/24 21:54:56.01 lGKeQ6/A.net
Edge上でドラッグ&ドロップ動作をエミュレーションしようとしてるけどうまく行かない
Edge側の問題っぽいが

472:デフォルトの名無しさん
19/09/25 02:02:13.55 idiO5sU0.net
EdgeというよりUWPアプリ全般で多分うまくいかないんじゃないの

473:デフォルトの名無しさん
19/09/26 11:47:45.82 2E8AEgsX.net
UWSCを今日から始めました。
皆様、宜しくおねがいします。
早速なのですがSLEEPについて教えて下さい
<理解していること>
SLEEP(0.1)
0.1秒スリープ
---------------
SLEEP(RANDOM(2))
0or1or2秒スリープ
---------------
<やりたいこと>
0.01秒から1秒の範囲でランダムにスリープしたい場合は
どうしたら実現できますか?
皆様のお知恵を宜しくおねがいします。

474:デフォルトの名無しさん
19/09/26 11:56:29.09 8zbcqLQ8.net
Sleep(Random(100) / 100)

475:デフォルトの名無しさん
19/09/26 12:09:10.09 2E8AEgsX.net
>>446
早速のご回答有り難うございます。
こういう表記の仕方があるんですね
まったく思いつきもしませんでした。
有り難うございます!!!

476:デフォルトの名無しさん
19/09/26 12:13:50.53 bGOHcRaB.net
randomは引数の範囲最大値は出ないことに注意
例示の引数2の場合で言えば0か1しか出ない
で、要するに1~100の値を求めて100で割れば0.01~1.00となるわけで
randomの仕様を考慮&利用すると以下の通り
(random(100) + 1) / 100

477:デフォルトの名無しさん
19/09/26 12:20:51.72 8zbcqLQ8.net
>>448
>randomは引数の範囲最大値は出ないことに注意
知らなかった、申し訳ない

478:デフォルトの名無しさん
19/09/26 12:46:58.57 2E8AEgsX.net
>>448
更に詳しい解説及びSLEEP(RANDOM(2))についての指摘
有り難うございます。
「引数2の場合ば0か1」勉強になりました。
本当に有り難うございます。

479:デフォルトの名無しさん
19/09/26 13:55:37.41 iUaFKvJQ.net
すっごい初歩的な質問かもしれませんが、
メモ帳にもの凄い長い文字列がありその途中に
a
b
c
という1文字ずつの文字列が10個くらいあってそれを全部
d
e
f
に簡単に変える方法ってあるでしょうか?
最終的にはそのabcをdefに変えたもの
ghiに変えたもの、jklに変えたものなど沢山必要なため、手作業で一つ一つ変えていくのだと膨大な時間がかかってしまうためよろしくお願いします。

480:デフォルトの名無しさん
19/09/26 14:03:02.51 5T2rMbCQ.net
んなもんUWSCじゃなくてエディタの正規表現で置換せーや

481:デフォルトの名無しさん
19/09/26 14:07:22.25 bMINaTXu.net
すっごい初歩的な質問だし、やり方も何通りも思いつくけど、お前が思いつかないって事はあとから要件がコロコロ変わるか、全くの初心者かなので一つ一つ手作業でやったほうが早い。

482:デフォルトの名無しさん
19/09/26 14:09:46.30 DaWSSFTy.net
Replaceってあったっけメモ帳の置換の方が早そう

483:450
19/09/26 14:25:46.18 iUaFKvJQ.net
メモ帳の置換を使った場合
abcという横に並んだ文字列をdefという横に並んだ文字列に変えるってのだと一瞬でできたんですが、縦に並んだ
a
b
c

d
e
f
に変える場合だと上手くいかないんですが
何か方法はありますか?

484:デフォルトの名無しさん
19/09/26 14:29:56.39 ff/FN5DC.net
改行を含めて直列にしてから元に戻せば楽なんじゃね
つーか、改行をまたいで文字列置換してくれるエディタがあった気がするが

485:デフォルトの名無しさん
19/09/26 14:36:55.66 5T2rMbCQ.net
正規表現でぐぐれ
あとはスレチだ失せろ

486:デフォルトの名無しさん
19/09/26 14:41:33.51 bMINaTXu.net
正規表現なんていらんだろ。。。何いってんだw

487:デフォルトの名無しさん
19/09/26 14:47:35.38 PdDoKstg.net
>>456
それこそ、マイクロソフトのワード(苦笑)ですら
置換画面であいまい検索にチェックを入れて
a^pb^


488:pc^p を abc へ置き換えることで可能かと。 秀丸エディタその他のエディタでも一般的にできる。



489:デフォルトの名無しさん
19/09/26 14:53:59.09 i7CtdN8G.net
具体的なことは一切書かず偉そうなことだけ抜かしてるお前こそ一体なんやねん
アホは黙っとけ

490:デフォルトの名無しさん
19/09/26 14:56:42.66 bMINaTXu.net
>>460
間違いしか書いてないやつに言われたくないぞwあほ

491:デフォルトの名無しさん
19/09/26 14:58:41.92 3k8gDmD5.net
別に正規表現でもできるし間違いではなくね?

492:デフォルトの名無しさん
19/09/26 15:00:59.83 5T2rMbCQ.net
>>461
なにがどう間違いなのか詳しく頼むわ
そしてさっさと正しいやり方を書いてくれ
それと、>>460は俺じゃないぞ阿呆w

493:デフォルトの名無しさん
19/09/26 15:04:09.18 bMINaTXu.net
正規表現なんて必要ない。UWSCならREPLACEでも使えばいい。
スレ内で対応可能だし、正規表現でググるとかアホ

494:デフォルトの名無しさん
19/09/26 15:05:49.73 /5glJw3r.net
何がしたいのかいまいちわからんが
abcをdefに変えるだけなら正規表現は必要ないかもしれんけど
他にも色々変えるんだったらさっさと正規表現でも使ったほうが速いだろ

495:デフォルトの名無しさん
19/09/26 15:07:24.62 bMINaTXu.net
だから「要件がコロコロ変わるか、全くの初心者かなので一つ一つ手作業でやったほうが早い」

496:デフォルトの名無しさん
19/09/26 15:09:23.30 5T2rMbCQ.net
マクロの流れで書き換える必要があるならreplace使うのは分かるが
単純にテキストの文字列書き換えるだけでわざわざuwscでreplace使うとかどっちがアホなんだよw

497:デフォルトの名無しさん
19/09/26 15:12:54.58 bMINaTXu.net
はいはい。アホとの会話は要件聞き出すより無駄だわ。
わざわざメモ帳で正規表現使う方法でもググっとけw

498:デフォルトの名無しさん
19/09/26 15:12:58.19 OcEGW6mq.net
>>464
んで、具体的なやり方は?

499:デフォルトの名無しさん
19/09/26 15:13:06.47 DaWSSFTy.net
行・列関係なく縦に並んだ指定文字なら面白い質問なのに

500:デフォルトの名無しさん
19/09/26 15:14:37.41 bMINaTXu.net
だから「要件がコロコロ変わるか、全くの初心者かなので一つ一つ手作業でやったほうが早い」

501:デフォルトの名無しさん
19/09/26 15:19:02.37 eZXWH36o.net
abcをdef、ghi、jklとかたくさん変えるとか言ってるし正規表現でやったほうが早いだろ

502:デフォルトの名無しさん
19/09/26 15:20:58.61 bMINaTXu.net
>>472
お前は正規表現をググったほうがいいw

503:デフォルトの名無しさん
19/09/26 15:24:30.08 VJCVWXU0.net
煽るだけのベテラン基地外がまた湧いたのか
向こうが過疎ってるからってこっちにくんなよ

504:デフォルトの名無しさん
19/09/26 15:24:57.66 5T2rMbCQ.net
何通りもやり方は思いつくとか言いながら、煽るだけで決して何一つ言わない時点でお察し
どうしようもねえなw

505:デフォルトの名無しさん
19/09/26 15:27:37.43 Dz9wKQLF.net
メモ帳で正規表現なんて使えるの?

506:デフォルトの名無しさん
19/09/26 15:32:08.31 bMINaTXu.net
おぃおぃ。本気で置換と正規表現を混同してるやつがいるのか^^;
ググるなら「置換」だし、作業するなら「改行を検索に含めることができるテキストエディタを探す」だぞ。
要件変わるから多分無意味だけどw
> メモ帳で正規表現なんて使えるの?
メモ帳のテキストを吸い出して、正規表現にマッチングさせればいいけど、普通はやらん。
対応してるテキストエディタ使う。

507:デフォルトの名無しさん
19/09/26 15:32:23.98 balOv07a.net
教える気もない上級者さんは>>1のスレから出てこないでください

508:デフォルトの名無しさん
19/09/26 15:38:07.93 bMINaTXu.net
>>478
そうする。ひどいなここ。

509:デフォルトの名無しさん
19/09/26 15:42:08.85 tLIoXhFC.net
それだけ長文かけるならやり方書いてあげればいいのに
uwscスレって定期的に煽りキチガイ沸くよな

510:デフォルトの名無しさん
19/09/26 16:15:32.47 2E8AEgsX.net
>>451
WindowsのTeraPadで置換機能つかって
検索する文字列を「\na\nb\bc\n」
置換後の文字列を「\nd\ne\nf\n」
とすれば
a
b
c

d
e
f
とに力技でできます。
UWSCは本日1日目なのでわかりません。

511:デフォルトの名無しさん
19/09/26 16:23:29.46 2E8AEgsX.net
上の補足
qwea
b
c
の変換はちゃんと行わないのですが
先頭から
a
b
c
となるテキストは変換できません


512:。 先頭がaとなるときの表現方法が正規表現で可能なのかな? 詳しくないのでごめんなさい。



513:450
19/09/26 16:40:53.92 iUaFKvJQ.net
ありがとうございます。
やってみます。

514:デフォルトの名無しさん
19/09/26 17:09:08.72 dB4DsoxS.net
>>481
と同じことをUWSCでやろうとすると
kekka = REPLACE( taisyou, "<#CR>a<#CR>b<#CR>c<#CR>", "<#CR>d<#CR>e<#CR>f<#CR>")
>>482
TeraPadは正規表現は使えないと思うので
Meryを使った場合は
検索する文字列 "(^|\n)a\nb\nc"
置換後の文字列 "\1d\ne\nf"
(^|\n)で先頭か前に開業がある場合のどちらかを指し
それに一致した内容が\1に入る

515:デフォルトの名無しさん
19/09/26 18:14:18.26 2E8AEgsX.net
>>484
わかりやすい解説有り難うございます。
おっしゃる通り、TeraPadは正規表現使えないみたいです。
Meryを使って
検索する文字列 "(^|\n)a\nb\nc"
置換後の文字列 "\1d\ne\nf"
を使えば先頭文字aの場合も解決できて
置換後の文字列を何種類か作っておけば
>>451さんは幸せになれますね。
個人的にはでMaryをUWSCで操作すると言う手も考えちゃいますけど
スマートな方法は
UWSCで正規表現を使う場合にはVBScript等使えばできるみたいですね。

516:450
19/09/26 18:45:29.17 iUaFKvJQ.net
Meryだと無事に置換ができました。
本当にありがとうございます。助かりました。

517:デフォルトの名無しさん
19/09/26 19:56:14.78 2E8AEgsX.net
自分もMery使用したことがなかったのでインストールして
上記置換処理やってみました。
一瞬で置換され便利ですね
過去ログでもおすすめエディターみたいですので少し使ってみます。
>>484さんに感謝

518:デフォルトの名無しさん
19/09/27 06:24:51.56 HGFU/goi.net
ものすごく初心者な質問させて頂きます。
過去ログのソースコードを見させて頂いているのですが
人によってコマンドの記述が違います。

1.print XXXX
2.Print XXXX
3.PRINT XXXX
というように大文字と小文字を混在されています。
なにか理由があるのでしょうか?

519:デフォルトの名無しさん
19/09/27 08:17:47.20 C42tS7ey.net
言語的に予約語、関数名、変数名に大文字小文字の区別がなく、専用のエディタもないから好きなように書いているだけ
※専用じゃないけどvscodeやサクラエディタ用の拡張や予約語リストはあるので入れることをオススメ
ちなみに例えば自分はPCでなら関数は大文字、変数名は小文字キャメル(定数は大文字)を緩く守るが
掲示板なんかにスマホから短いコード投下する時は面倒なので小文字かな

520:デフォルトの名無しさん
19/09/27 08:18:23.10 P2udmMmf.net
1.個人のこだわり(ひとによっては宗教レベル)
2.タイピングの癖
3.UWSCの寛容さへの甘え

521:デフォルトの名無しさん
19/09/27 10:12:57.50 UTbYC5kd.net
Pascal系は大文字小文字を区別しないものが多い、C系はほとんど区別される。UWSC作った人がPascal好きだったか?

522:デフォルトの名無しさん
19/09/27 10:56:47.41 C42tS7ey.net
uwscはPascalというかDelphi由来

523:デフォルトの名無しさん
19/09/27 11:16:12.69 HGFU/goi.net
>>489
大文字と小文字に区別がないこと理解しました。
私も関数は大文字、変数名は小文字キャメル(定数は大文字)で
同じ様に記述してみます。
>>490
個性が出やすくなるんですね。
短期間でのレスありがとうございます。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch