20/12/27 01:23:55.59 2030r+Fs.net
>>722-723
たしかにそのやり方は強引にできそうですが、調べてたらWindows10では無理だったみたいです
ただアクティブ状態でも
IF CHKIMGX( "2.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
これだと画像認識せず
IF CHKIMG( "2.bmp",,,,,,,IMG_MSK_BGR6)
これだと画像認識されるのはどういうことでしょうか
ちなみに画像は異なりますが
IFB CHKIMGX( "1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
こちらは認識してくれているので、記述のミスはないと思います
772:デフォルトの名無しさん
20/12/27 06:46:05.34 ILpVLMzN.net
画像が異なるが答えなのでは…?
実物も見せず言うだけ言われても何も分からんがな
773:デフォルトの名無しさん
20/12/27 11:11:31.79 Go+qnVGA.net
画像が異なるってことはチェックしてる画面が違うわけで
画像以外のパラメータがどれか合ってないのでは
774:デフォルトの名無しさん
20/12/27 13:39:37.49 Xj0rz7S9.net
よく知らないけど、X版とCHKIMGでは判定方法が違うんじやないの?
X版は、かなり暗くても高スコアでヒットするから
775:デフォルトの名無しさん
20/12/27 13:58:17.99 lIVD6Aho.net
CHKIMGX( "2.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
これのx1,y1,x2,y2を使ってsaveimgしたbmpを2.bmpに差し替えてどうか
PrintScreenから作ったbmpがおかしいか、座標がおかしいかわかるでしょ
776:デフォルトの名無しさん
20/12/27 15:35:17.18 2030r+Fs.net
>>725-728
いろいろと勘違いさせてしまいました
まず2.bmpの部分はCHKIMGを用いれば画像認識されているので現状意図した動作はされています
ですので、PrintScreenしたbmpがおかしいということもないと思います
疑問なのは、あいまい画像認識のCHKIMGXの方が高確率で認識されると思うのですが、
なぜあいまい画像認識のCHKIMGXでは認識せずにCHKIMGの方でないと認識しないのかとういことです
1.bmpは関係ありません
ただ1.bmpと2.bmpでは認識してもらいたい画像の部分だけ変えてる以外にCHKIMGXの記述を変えてないので、
記述間違いなら1.bmpも画像認識されないから2.bmpが画像認識されないのも理解できるけどっていうことです
777:デフォルトの名無しさん
20/12/27 16:00:49.64 2030r+Fs.net
IFB CHKIMGX( "1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
DOSCMD
SLEEP(2)
IF CHKIMG( "2.bmp",,,,,,,IMG_MSK_BGR6)
DOSCMD
ELSE
DOSCMD
DOSCMD
ENDIF
ELSE
ENDIF
これだと2.bmpを認識して動作しますが、
IFB CHKIMGX( "1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
DOSCMD
SLEEP(2)
IFB CHKIMGX( "2.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
DOSCMD
ELSE
DOSCMD
DOSCMD
ENDIF
ELSE
ENDIF
これだと2.bmpを認識しないので動作しないということです
778:デフォルトの名無しさん
20/12/27 16:46:19.54 Go+qnVGA.net
PC一回再起動したら?
779:デフォルトの名無しさん
20/12/27 19:14:21.24 ILpVLMzN.net
>>730
だから判定したい場面も判定画像も上げずに目隠しで言われてもエスパー回答しかできねーのよ
ゲームの絵貼りたくないならマス目画像とか適当な背景画像で状況再現したセットをくれ
780:デフォルトの名無しさん
20/12/27 19:37:44.59 majDbP6B.net
>>730
X版はデバッグモードあるから有効にしてみたら何かわかるかも知れない
781:デフォルトの名無しさん
20/12/28 15:08:59.57 Btd6jx/E.net
自己解決しました、お騒がせしました
782:デフォルトの名無しさん
20/12/28 15:12:22.09 bQ1hkiX8.net
原因はなんだった?
783:デフォルトの名無しさん
20/12/28 15:20:34.10 A2LpudMi.net
>>734
実際に起きてた問題と原因と解決した方法を報告してね
784:デフォルトの名無しさん
20/12/28 19:16:35.66 lHgMwOra.net
>>734
ネットでの質問は、自己解決した場合もその内容を具体的に報告することがマナーとなっていますのよー
そうしないと情
785:報の共有が出来なくて回答者は無駄足になるし、 聞き逃げが続くと誰も答えなくなるかもしれないからね
786:デフォルトの名無しさん
20/12/28 19:31:08.48 RUvOsexB.net
自己解決したんだから回答者は答えてないのと同じだと思いますが
787:デフォルトの名無しさん
20/12/28 19:36:28.69 rQ8H54wA.net
まー多分つまんない勘違いか思い込みだったんだろう
んなもん共有されても参考にならないしいんじゃね
788:デフォルトの名無しさん
20/12/29 02:36:48.48 HcXyWfHn.net
仰る通り、回答者もいなかったので記載するほどでもないと思っていました
CHKIMGで認識できて、あいまい認識できるCHKIMGXが認識されなかった問題ですが、CHKIMGXでの認識は無理だと判断しました
SAVEIMGで画像取得しても特に画像に違いが見当たらず、
認識する範囲を画面全体から、認識してもらいたい画像がある範囲のみに絞っても無理
判定閾値の条件を緩くしたら、今度は画像が表示されていないのに認識してしまうほどでした
CHKIMGXでは色幅が利用できないようなので、一見わかりづらいですがおそらくそこに問題があったのではないかと思います
789:デフォルトの名無しさん
20/12/29 08:14:52.64 VfYR7jYh.net
CHKIMGXの着目する色では対応できなかったということか
最終的に原因を書いてくれたのだからいいけど
>>721や>>724にいくつか回答がついたのだから原因は書くべきでしょう
例え回答が役に立たなかったとしても、回答者は質問に対して時間を割いたのだから
それは質問者の最低限のマナーだとおもうよ
そうでなければ見返りもなく回答する人がいなくなって質問スレは成り立たくなる
790:デフォルトの名無しさん
20/12/29 09:42:18.91 kNpkOyS+.net
>>740
>回答者もいなかったので記載するほどでもないと思っていました
うん。それ間違いだから直そうね
それはさておき、範囲の比較じゃ無駄が多いから、peekColorでfunction作ったほうが速いんじゃね
何に使うのか知らんが、ゲームの画面監視でHP・MP・敵と第三者を常時監視して完全な自動戦闘するなら断然軽かったぜ
791:デフォルトの名無しさん
20/12/29 14:54:12.96 4L/gF/i1.net
昔mixiゲームにあったクライムワールドで
格下相手に粘着して5万勝以上稼いだのは僕です
マクロ様々でしたね〜!
792:デフォルトの名無しさん
20/12/29 15:00:52.48 PT/2WgOq.net
それって金もうかるん?
793:デフォルトの名無しさん
20/12/29 20:59:49.89 /PhRpDJG.net
>>740
CHKIMGXはモノクロに変換して比較するから色違いの画像とかには向いてないよ
794:デフォルトの名無しさん
20/12/30 14:54:33.60 lWlFiWq8.net
>>740
chkimgxで認識できなくてchkimgだと認識する画像パターンは存在するからね
chkimgxっていうか使ってるOpenCVライブラリの問題だと思う。もしかしたら、こっちのバージョン上げて作り直したら解消するかもしれない
795:デフォルトの名無しさん
20/12/30 15:51:05.24 jnop5f2w.net
もう書かれてる通り色の扱いでしょ
796:デフォルトの名無しさん
20/12/31 09:53:15.79 q35RE35p.net
windows10の1909から20H2へアップデートしたらブラウザの描画が変わって画像取得をやり直す羽目になった…
フォントはブラウザ毎で異なるのは許容できるけど画像の描画も変わるのは解せない
普段chkimgしか使ったことないけどこういうのはchkimgxで解決できるのかな?
797:デフォルトの名無しさん
20/12/31 16:07:02.38 898M8IM/.net
>>748
画像の大きさが同じならある程度吸収するけど
基本はRPAスレでも散々言われてるように環境変わったらその環境用に作り直すしかないよ
798:デフォルトの名無しさん
21/01/18 00:47:00.68 3GwAoqNL.net
こういう処理をさせたいのですが、変数?の
799:使い方が違っていてエラー吐いて動きません どなたか教えていていただけないでしょうか。 マクロ1 for kaisu = 1 to 10 もし、この条件を満たすなら、「処理AA」をCall next マクロ2 処理AA k=k+1 ←「処理AA」が行われた回数のカウントをしたい ※マクロ1へ戻る マクロ3 if k = 1 then 操作B if k = 2 then 操作C
800:デフォルトの名無しさん
21/01/18 00:48:56.41 3GwAoqNL.net
↑のようなものを作っても
k=k+1
これが「変数kが定義されていません」エラーを吐いて動きません
801:デフォルトの名無しさん
21/01/18 00:55:11.99 zDdtgKlc.net
マクロ2の変数をマクロ3では参照できない
詳しくは変数のスコープでググってくれ
802:デフォルトの名無しさん
21/01/18 20:36:52.82 3GwAoqNL.net
できない理由の回答ありがとう
PUBLICを使うことでなんとかなりそうです
803:デフォルトの名無しさん
21/01/20 13:52:57.09 op6U359o.net
excel2013以降全般でUWSCでexcelファイルをオープンにする場合と
デスクトップ上からexecelファイルをクリックしてopenする場合では何かexcelの認識が変わるのでしょうか?
excelに後から入れたアドインが上記の場合だとアドインを認識してくれず
下記の場合だとアドインを認識してくれる状態で困っています
804:デフォルトの名無しさん
21/02/02 19:37:28.21 lhBS5kaI.net
お気に入りだったのがサービス終了したもんで
マクロ使ってプレイすると面白いゲーム教えて下さい
805:デフォルトの名無しさん
21/02/02 20:24:46.86 CvaL/gK2.net
クッキークリッカーでも極めたら如何か
806:デフォルトの名無しさん
21/02/05 12:52:44.92 CE/PVw/N.net
裏マクロでの画像認識について質問です
w_id = getid( "エミュレーター" )
mouseorg( w_id ,2 ,MORG_BACK )
を利用した裏マクロを作り、再生してみたのですが
オンマウス状態にしないと画像認識が働かず
困っています。
【現在の状況やその具体例】
・単純なクリック操作は裏マクロとして正常に動作する
・エミュレータの外側にマウスカーソルがあると画像認識がまったく働かない
・エミュレータの内側にマウスカーソルをもっていくと即座に画像認識が行われる
・エミュレータがアクティブ状態か非アクティブ状態かは関係なく
オンマウスかどうかで画像認識の「働く/働かない」が決まる状況
(PC画面の最前面はメモ帳やブラウザ。裏で開いているエミュレータの先っぽだけを
ブラウザの上にハミ出させて、そのハミ部分にマウスカーソルを移動させると画像認識動く)
この「オンマウスでないと画像認識が動かない」状況を解消する方法を知りたいです
よろしくお願いします。
807:デフォルトの名無しさん
21/02/05 14:06:50.35 CE/PVw/N.net
>>757
すみません。質問者です
>単純なクリック操作は裏マクロとして正常に動作する
↑これもオンマウス状態でないと動作していませんでした。勘違いしていたようです
根本的に裏マクロの作成に失敗してる気がします
もうちょっと自分で試行錯誤してから質問しなおします。
808:デフォルトの名無しさん
21/02/05 14:38:29.04 8IWMGH1a.net
数回滞納したら信用機関のブラックリストに載るんだろ
これ最悪じゃん
809:デフォルトの名無しさん
21/02/05 14:39:01.10 8IWMGH1a.net
誤爆でした
810:デフォルトの名無しさん
21/02/05 14:57:30.51 yiuLSrin.net
((((;゚Д゚))))
811:デフォルトの名無しさん
21/02/05 15:26:56.29 3x1rEHtV.net
滞納ってのは金払いますって約束を破ってるんだから信用に傷付くのは当然だと思うんだが
遅れても払えば問題ないって意識が根本的におかしい
uwscで自動化しろ
812:デフォルトの名無しさん
21/02/06 14:27:30.37 NphD2JzZ.net
IEでサイトをよんだら、Edgeが起動した。
もうだめだ。オレの人生はおわった。
変わりの自動化ツールを教えて下さい
813:デフォルトの名無しさん
21/02/06 14:37:42.46 e0Fl/dIF.net
edgeで動作するように作り直した方が早
814:い
815:デフォルトの名無しさん
21/02/06 15:00:10.50 NphD2JzZ.net
>>764
そんなことできるんですか 朗報!
816:デフォルトの名無しさん
21/02/06 15:30:39.13 xKFqhvrl.net
ieでそのまま開くみたいな設定がedge側にあったと思うけど
817:デフォルトの名無しさん
21/02/06 20:25:34.70 +9Nz3gBm.net
>>766
ありがとうございます。
設定を変更してできました。
前日にはIEで表示できたのに、今朝になって突然代替表示されるようになって動転してしまいました。
818:デフォルトの名無しさん
21/02/08 18:06:22.89 sakamvjP.net
adbを利用したマクロのタップ位置をちょっとだけランダム化したいです
表マクロで座標(20,50)の周辺をランダムタップする場合は
20+RANDOM(1),50+RANDOM(1)
↑みたいにすれば出来ていたのですが、
adb版の裏マクロだとどういう記述にすればいいのでしょうか
819:デフォルトの名無しさん
21/02/08 19:54:11.87 rDadBMP6.net
>>675-676辺りを見て
820:デフォルトの名無しさん
21/02/08 21:20:12.83 sakamvjP.net
返答ありがとうございます
括弧でくくるとはどこをどのようにくくればいいのでしょうか…
具体例を書いていただけるとありがたいです。 頭が弱くて申し訳ない泣
下記を試してみたのですが一番上のやつだけが正常に動きます
成功(ランダム化無し)
DOSCMD("cd C:\LDPlayer\LDPlayer4.0 & adb shell input tap 20 50")
失敗(ランダム化有り)
DOSCMD("cd C:\LDPlayer\LDPlayer4.0 & adb shell input tap 20+RANDOM(1) 50+RANDOM(1)")
失敗(ランダム化有り_座標を括弧で括る)
DOSCMD("cd C:\LDPlayer\LDPlayer4.0 & adb shell input tap (31+ RANDOM(1)) (50+ RANDOM(1))")
失敗(ランダム化有り_座標を括弧で括る2)
DOSCMD("cd C:\LDPlayer\LDPlayer4.0 & adb shell input tap 31(+ RANDOM(1)) 50(+ RANDOM(1))")
また>>675の書き方は
doscmd(" ")の「")」の箇所が「)」になっていて「" "」で最後のY座標を覆えていないのですが
これは書き込みミスですか?それとも何か意図があるでしょうか
821:デフォルトの名無しさん
21/02/09 02:13:50.42 HgHOGPAh.net
DOSCMDで送信するのは文字列
下3つはRANDOM関数がダブルクォーテーションで囲われてるから関数ではなく文字列として認識されてる
文字列は結合が出来る
str = "aaa" + "bbb"
print str
> aaabbb
822:デフォルトの名無しさん
21/02/09 02:58:31.43 Yx4rnzv/.net
>>770
文法適当だけどこう
doscmd("adb shell input tap" + " " + (10 + rnd(10)) + " " + (20 + rnd(20)))
数値の加算としてて扱いたいところを括りなさいということ
doscmdで失敗したらdoscmdの返り値を吹き出しとかログに出して確認するとコマンドプロンプト上のメッセージ見れるよ
まあ、あとdoscmdで構文組み立てると使い回し的に微妙だし外で組み立ててデバッグ表示とか確認してから文字列の変数で渡す方がいいかな
823:デフォルトの名無しさん
21/02/09 10:28:45.04 w8MMFkxC.net
>>771
>>772
返答ありがとうございます。
教えていただいたルールと実例を見て少しずつわかってきた気がします
「+ " " +」の箇所が不思議な並びに見えていたのですが、「" +」で一塊の記号
と捉える(?)ということが何となくわかってきました。
「" +」と「関数」の組み合わせで、関数部分は括弧で両脇ガードするイメージかな、て。
理解が追いつきそうな気がします。ありがとうございます
824:デフォルトの名無しさん
21/02/09 12:59:51.00 Yx4rnzv/.net
いや変な理解してるよw
プログラム知識どのくらいあるか知らんけど、要はdoscmdは最少だと文字列1つが引数なのが大前提
次にuwscは文字列に対して+すると左辺右辺を文字列とし結合する
この時、数値も文字列になるし、関数は返り値が文字列になる
なのでdoscmdの1番外の括弧の中の+は基本的に文字列の結合をしている
括弧の中にある括弧内は先に数値の計算がされる
doscmd(10 + 10)
だと1010になって
doscmd((10 + 10))
だと20になる
doscmd(a + " " + b)
これはなんのことはなく単にaとbの間にスペースいれてるだけだ
825:デフォルトの名無しさん
21/02/10 08:32:17.00 JYL+31L1.net
ありがとうございます。今度こそわかりました
つまり、doscmd(a + " " + b)のaとbとにランダム数値を代入する、みたいな式を
これの前に書けば晴れてランダム座標の完成となるわけですね
ちなみにお察しの通りプログラムの知識はなく
録画した表マクロが読める程度です… 回答ありがとうございます
826:デフォルトの名無しさん
21/02/10 16:14:00.55 mYgax70j.net
>>765
IE専用ツールじゃないから、EdgeでもChromeでも動くよ
827:デフォルトの名無しさん
21/02/12 20:13:05.76 74skEOdG.net
>>776
それがですね問題なのは、IEの場合、ページが読み込み完了になるまで待っててくれる関数があるじゃなんですか。
ああいうことができないと、例えばボタンを押すタイミングが早すぎたとかいうことになって先へ進めなくなるんです。
他のRPAでしたっけか、そういったもので、ブラウザの読み込み完了になるまで待機するようなものが見つけられなくて
UWSCでIEをそのまま使いたいと思ってしまっているわけなんです。
828:デフォルトの名無しさん
21/02/13 11:45:04.70 ZGnem3aY.net
Seleniumは?
829:デフォルトの名無しさん
21/02/13 12:07:26.24 dZ6ue5BC.net
Seleniumでもpuppeteerでも好きなもの使え
830:デフォルトの名無しさん
21/02/15 20:45:26.14 fa+YzTlt.net
webdriver使えば?
831:デフォルトの名無しさん
21/02/16 15:50:22.10 +7e6mc9m.net
UWSCのスクリプト集が死んでるサイトしかないけど、見る方法は・・・
URLリンク(canal22.org)
832:デフォルトの名無しさん
21/02/16 23:02:31.35 N5xcmHzO.net
archiveでどーぞー
833:デフォルトの名無しさん
21/02/28 12:00:54.27 zlvqXFLj.net
Aという動作をループさせながら、Bという画像が現れたら数分後にBをクリックするとかできますか?スリープだとAの動作が止まってしまうので…
834:デフォルトの名無しさん
21/02/28 12:04:06.87 Gf8vzNDu.net
gettimeを使うかthreadで別処理にする
835:デフォルトの名無しさん
21/02/28 13:15:04.71 rSDXD4Hw.net
Aを内包する大ループ作るだけでよくね
正攻法はthreadでいいと思うが
836:デフォルトの名無しさん
21/02/28 17:45:14.82 zlvqXFLj.net
ありがとうございます。早速試してみます。
837:デフォルトの名無しさん
21/03/02 13:39:10.84 JZpUb5F1.net
難しく考えすぎなのでは?
DIM Flag = False //B画像検出フラグ
//Aという動作をループ
While True
//B画像が現れたらxに現在時刻を記録しFlagをTrueにする
IFB CHKIMG("B.bmp") and (Flag = False);x = GETTIME();Flag = True;ENDIF
//B画像検出して60秒経過したら、B画像をクリックしてループを抜ける
IFB ((GETTIME() - x) > 60) and (Flag = True);BTN(LEFT,CLICK,(G_IMG_X+5),(G_IMG_Y+5));BREAK;ENDIF
//B画像が現れず、120秒経過したらループを抜ける
IFB ((GETTIME() - x) > 120) and (Flag = False);BREAK;ENDIF
Wend
IFB Flag = True;msgbox("B画像検出");ENDIF
IFB Flag = False;msgbox("B画像未検出");ENDIF
838:デフォルトの名無しさん
21/03/02 14:30:33.02 mCqWIBDx.net
782:gettimeかthread
785:考えすぎでは?gettime使え
839:デフォルトの名無しさん
21/03/02 18:36:17.07 JZpUb5F1.net
xの初期値を入れてなかったから修正
DIM Flag = False,x = GETTIME() //B画像検出フラグ,xに現在時刻を入れる
//Aという動作をループ
While True
//B画像が現れたら、現れた時刻をxに入れてFlagをTrueにする
IFB CHKIMG("B.bmp") and (Flag = False);x = GETTIME();Flag = True;ELSE;ENDIF
//B画像検出して 60秒経過したら、B画像をクリックしてループを抜ける
IFB ((GETTIME() - x) > 60) and (Flag = True);BTN(LEFT,CLICK,(G_IMG_X+5),(G_IMG_Y+5));BREAK;ENDIF
//B画像が現れずに120秒経過したらループを抜ける
IFB ((GETTIME() - x) > 120) and (Flag = False);BREAK;ENDIF
Wend
IFB Flag = True;msgbox("B画像検出");ENDIF
IFB Flag = False;msgbox("B画像未検出");ENDIF
840:デフォルトの名無しさん
21/03/03 00:31:34.71 UoOyY0IM.net
>>789
素人考えですが
画像検出のIFブロックで発見したらBTNの第五引数で実行待ち時間を指定すればフラグ要らないような
841:デフォルトの名無しさん
21/03/03 00:39:48.25 eEFRPXrG.net
>>790
BTNって非同期なの?
842:デフォルトの名無しさん
21/03/03 20:36:38.79 yubedTmO.net
BTN(LEFT,CLICK,(G_IMG_X+5),(G_IMG_Y+5),600000) とすると、クリックするまでループ処理が止まる
止まるとA動作のループが動かない
843:デフォルトの名無しさん
21/03/03 20:58:42.86 gkb1jlIk.net
MSがなにやら簡単ツールを提供するようだ
自動化が簡単になる
844:デフォルトの名無しさん
21/03/03 22:02:40.43 g0RIT2ce.net
ソースは?
UWSCみたいには使えないと思うが・・・
845:デフォルトの名無しさん
21/03/03 22:08:57.07 gkb1jlIk.net
URLリンク(www.itmedia.co.jp)
846:デフォルトの名無しさん
21/03/03 22:20:08.14 g0RIT2ce.net
コードを書かずに〜と書いてあることから凝った設定はできないとも読めるよ?
まあ仮に自動化できたとしてもUWSCと同等のことが出来なければ用が無い
847:デフォルトの名無しさん
21/03/03 22:25:44.81 V8Bi7ith.net
これとUWSCを組み合わせて使えば自動化が簡単にできるようになるんじゃないかと期待してみる
848:デフォルトの名無しさん
21/03/03 22:41:06.95 W0isZ3pe.net
ブラウザの読み込み完了になるまで待つ機能があるかどうかですお。
849:デフォルトの名無しさん
21/03/04 08:23:11.29 RtzC2UYg.net
そりゃ自動化ツールなんだから
クリックした結果を見る前に次の動作するわけなかろうw
艦これの自動化くらいすぐ出来そう
850:デフォルトの名無しさん
21/03/04 14:16:32.07 U4nDCxwI.net
//IE以外で読み込み完了まで待機が出来ないとか何とか・・・?
DOSCMD("start microsoft-edge:URLリンク(www.google.co.jp)) //Edgeを起動してGoogleを表示
ID = GETID("Edge", "", -1)
Stand-by(ID,ITM_BTN,"Google 検索")
SENDSTR(id,"屋久島", 1, True) // 屋久島と入力してEnter
SCKEY(ID, VK_RETURN)
Stand-by(ID, ITM_LINK, "地図")
CLKITEM(ID, "地図", CLK_LINK) // 地図をクリック
//指定アイテムの文字が確認できるまで待機
Procedure Stand-by(ID, kind, ITM)
While True
Sleep(0.4)
for n in GETITEM(ID, kind)
if n = ITM then Exit
next
wend
Fend
851:デフォルトの名無しさん
21/03/08 11:11:54.09 r1yNd/Vf.net
>>795の続きが紹介されていた
windows10homeの場合は使えない機能があるとのことProを使うのは当たり前なんで気にしたことなかったが。
homeの人はproへグレードアップしてほしい。約1万5000円支払えば可能だから当たり前にやっておこう。
また、ブラウザの自動操作は拡張機能が必要とのことだ。
852:デフォルトの名無しさん
21/03/08 13:19:35.29 p+9eWZvC.net
やるかボケ
853:デフォルトの名無しさん
21/03/08 13:36:33.15 r1yNd/Vf.net
あっそうですか
でしたら使えない機能は諦めていただく他はないですね
854:デフォルトの名無しさん
21/03/08 13:54:11.38 1eIB7vrT.net
マイクソからも提供されてるのか
試してみるかな
855:デフォルトの名無しさん
21/03/12 15:13:37.21 ZRLAvOku.net
printで表示させる文字の位置を設定する方法はありますか?
サイズも設定できるとなお良いです
856:デフォルトの名無しさん
21/03/13 13:10:54.59 cA/ebhRB.net
//面倒くさいやり方もあるが、無駄な労力なのでLOGPRINTを使うと良い
//なぜかx座標が7ピクセルずれるから指定座標から引く事
x = 500;y= 500
FUKIDASI("表示位置テスト1",x,y)
LOGPRINT(TRUE,x-7,y,250,100)
PRINT "表示位置サイズ変更テスト2"
sleep(10)
857:デフォルトの名無しさん
21/03/14 19:17:10.26 MdoUOPO+.net
凄い初心な質問ですんません。
ID = EXEC("C:\Program Files (x86)\cameeze\cameeze.exe")
SLEEP(1.5)
ACW(
858:GETID("cameeze","TfrmMain.UnicodeClass"),1583,450,460,300,0) ↓ 5回繰り返し(座標だけ違う) こんな感じで作ったのですが、UWSCから設定ファイルを実行すると動くのですが、 設定ファイルから実行すると失敗してしまいます。(アクティブなウィンドウが切り替わらずにパッパッと動いてる) 重複起動していて同名なので、名前の後に(1)みたいな風に付ける方法はありませんでしょうか…
859:デフォルトの名無しさん
21/03/14 19:20:27.96 MdoUOPO+.net
あれ、なんでだろ書き込めない・・・
860:デフォルトの名無しさん
21/03/14 19:25:57.43 MdoUOPO+.net
くっそ初心者ですんません。
ID = EXEC("あああ")
SLEEP(1.5)
ACW(GETID("あああ","TfrmMain.UnicodeClass"),1583,450,330,460,0)
↓
座標変えて5回繰り返し
こんな感じで同じソフトを多重起動させて並べようとしたのですが、失敗してしまいます。
ウィンドウタイトルが同じで同じウィンドウを色々な座標に持っていこうとしてるだけみたいな感じなのですが
ソフト名の後ろに(1)みたいなのを付けたりする方法はありませんでしょうか…
(なぜか書けなかったのであああにしてます)
861:デフォルトの名無しさん
21/03/14 20:13:27.68 E6ui2GaX.net
例えばこれで多重起動できる
ID = EXEC("notepad.exe")
ACW(ID,1583,450,330,460,0)
ID2 = EXEC("notepad.exe")
ACW(ID2,1583,450,330,460,0)
862:デフォルトの名無しさん
21/03/14 22:20:18.27 BQ6dfRIE.net
>>809
ID = EXEC("あああ")
とやってるのに、その後のACWでIDを使わない謎
863:デフォルトの名無しさん
21/03/14 22:32:16.30 MdoUOPO+.net
>>811
ありがとう!「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」みたいな感じですか?
でもそのソフト起動遅いんです・・・。
続けて書いたら最初に立ち上がる時に表示されるロゴみたいなのが指定の位置に移動するだけで
肝心のウィンドウは前回の終了位置にいってしまうんです…
864:デフォルトの名無しさん
21/03/15 00:00:30.92 +CyRHPpu.net
//>「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」
//変数のIDを使ってないから、渡す以前に渡してねぇだろという・・・
//SLEEPは待ち時間指定だから、好きなだけ挟んで良い
//電卓を多重起動して横に並べる
EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID1 = GETID("電卓")
ACW(ID1,100,100,500,500,0)
EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID2 = GETID("電卓")
ACW(ID2,600,100,500,500,0)
EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID3 = GETID("電卓")
ACW(ID3,1100,100,500,500,0)
865:デフォルトの名無しさん
21/03/15 00:36:16.10 /ZCKQNsi.net
複数個起動できないソフトなのでは?
866:デフォルトの名無しさん
21/03/15 01:08:44.19 v5Yi3qmH.net
ああ!そういうことか!(´・ω・`)意味が分かったかもしれない!!
ID = EXEC("あああ") ←この『ID』=という部分が自分で決めれるんすね!?
例えばaaa = EXEC("あああ")と書いて次の行に
ACW(aaa,1583,450,330,460,0)とすると
録画機能みたいなのを利用してたのでIDと書くルールなのかと思ってました…
>>814
いえ、複数個起動はできるソフトで、一応動くには動くのですが
設定ファイルから実行するとアクティブなウインドウが切り替わらず一つのウィンドウだけが座標を行ったり来たりする感じでした
867:デフォルトの名無しさん
21/03/15 01:09:40.14 v5Yi3qmH.net
わ
868:デフォルトの名無しさん
21/03/15 09:32:47.13 +CyRHPpu.net
なるほどなぁ
そのレベルからの解説でも需要があるのか
UWSCの需要はまだ枯れてないか
869:デフォルトの名無しさん
21/03/17 06:59:58.16 TjD9TcDJ.net
>>810
せっかく教えてくれていたのに、専ブラの設定かで見えてませんでした
ありがとうございます
870:デフォルトの名無しさん
21/03/17 07:01:40.55 TjD9TcDJ.net
>>813
も見えてなかった…
ありがとうございます!
871:807
21/03/17 16:54:27.51 dsWxXXVG.net
皆のお陰様でちょとだけ理解ができてきました
あわよくばもう一点だけ教えて欲しいのです
>>810さんが教えてくれた方法は何故か上手く動いてくれませんでした
起動の遅れ?とかが関係あるのかとSLEEPを挟んでみたりしたのですがうまくいかず
でもそのまんまコピペするとメモ帳はその様に動きました。
872:そこで>>813さんの教えて貰った様に起動させた後にGETIDってので戻り値?というのをID1~6に指定 これで思惑通り動きました!でも解せないというか理解できてないんです。 ID1 = GETID("電卓") ってのは「電卓っていうウィンドウIDを返せ」「それをID1と仮名する!」という意味であってますか? だとすると電卓が複数個起動してたらどれのウィンドウIDを戻すのか分からなくなる気がするのは気の所為でしょうか それとも順番に書いてるからアクティブなウィンドウから値を引っ張ってきてるのでしょうか? 1・自動で起動させてアプリを並べる。 2・別の設定ファイルでウィンドウにあるプルダウンメニューから自動で選ぶ をやりたくて、1はできたのですが2を行う場合、GETIDではできませんでした。 初心者のクセに基礎も分からず意味不明なこと言ってるかもしれませんが、最後にしますのでお願いします…
873:デフォルトの名無しさん
21/03/17 19:42:27.72 0BuFiOnf.net
最初から言ってる設定ファイルがなんなのか分からん
どっかて買ったマクロ集かなんか?
まあ他の部分は推測と合っている
874:デフォルトの名無しさん
21/03/17 19:56:01.39 +PPxZeIs.net
省略しないで書くなら、
ID = GETID("電卓", "ApplicationFrameWindow", -1)
となるが、めんどいから省略してる
//IDはIDの数値を入れる変数なので、変数名は何でも良い
//変数は数値や文字を入れておく箱のようなイメージ
//UWSCには変数の型は無いので、数字でも文字でも区別なく入れられる
//変数の宣言 使いたい所で変数を作れるの必須ではないが、使う変数を決めておく意味で宣言しておいた方が良いとは思う
DIM ID1,ID2,ID3
EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID1 = GETID("電卓")
ACW(ID1,100,100,500,500,0)
msgbox(ID1)
EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID2 = GETID("電卓")
ACW(ID2,600,100,500,500,0)
msgbox(ID2)
EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID3 = GETID("電卓")
ACW(ID3,1100,100,500,500,0)
msgbox(ID3)
//こうすると、起動した順にIDが1,2,3と割り振られてる事が分かる
//プルダウンメニューから選ぶのはUWSCでも出来るけどめんどい
875:デフォルトの名無しさん
21/03/17 20:02:51.61 dsWxXXVG.net
>>821
すんません、設定ファイルじゃなくてuwsファイルでした。
ということは、同名アプリ起動後に別のuwsファイルでIDを取得するには
マウスで座標指定してクリック→ウィンドウをアクティブに→ * = GETIDみたいなのを書いてやると良いわけですね
ありがとうございます挑戦してみます
876:デフォルトの名無しさん
21/03/17 20:12:09.19 dsWxXXVG.net
>>822
勉強なります。そうですかプルダウンはめんどうなんですね
プルダウンは諦めて手動にしようかと思います。
877:デフォルトの名無しさん
21/03/17 21:35:38.19 oFq5eIyC.net
プルダウンメニューから選ぶというのがよくわからない
878:デフォルトの名無しさん
21/03/18 07:40:23.96 8urs7GkO.net
>>825
防犯カメラ複数台登録して視聴ソフトを起動させると
すべて1台目のIPが指定されてしまうのです。
なのでプルダウン(ドロップダウン)から機器登録されている
IPアドレスを選択してあげないといけないんです
879:デフォルトの名無しさん
21/03/18 08:15:40.32 YmFQF9g2.net
全部を一つでは出来ないよ
所詮はアプリじゃなくてスクリプトだからさ
やろうと思えば出来るけど、状態を保持してる何かするのは難しい
今上がってるもので言うと
複数の監視カメラの視聴アプリとやらを一括で起動するのは特に問題ないよね
同時に整列させるのはちょっとハードル高いから考え方変えて、同じアプリを後から整列させるなら多少は簡単にできる
(ただ、uwscでやる必要性はあまり感じない)
プルダウンから自動で選ぶはまだちょっと意味が分からない
リストからカメラ指定して起動したいってこと?
それとも起動済みの視聴アプリをリストにして、それを選んで何か操作したいということ?
後者はアプリがタイトルバーに何か色つけてくれてればやりようあるけど、そうじゃないなら難しいよ
880:デフォルトの名無しさん
21/03/18 09:52:39.16 JPJY5VhO.net
たとえば一つの例として「Fit Win」というアプリがあって
指定したアプリを整列させるだけならこういうアプリもある
プルダウンから選ぶは座標クリックしていく原始的なやり方しかないだろうね
整列して同じ座標へウィンドウを固定させたら比較的簡単にできるし
視聴ソフトはあまり詳しくないので調べてみたら「smart viewer」というフリーのソフトが複数カメラ、複数画面に対応してるようだけど
こういうソフトじゃないと駄目なの?機器が対応してないと駄目だろうけどLAN接続するタイプなら割と対応してるっぽいが?
このソフトを採用している警備会社があるようだから悪くないと思うけどな
881:デフォルトの名無しさん
21/03/18 10:40:06.48 Y5jTQtWf.net
ネットワークドライブのuwsファイルを認識しないのですが、みなさんの環境でもそうですか?
\\ORE-PC\UWS\hoge.uws をダブルクリックすると問題なく起動しますが、
\\ORE-PCをZドライブに割り当てて、
Z:\UWS\hoge.uwsをダブルクリックするとFILE NOT FOUNDってでる。
右クリ→メモ帳だと問題なく開けるので、UWSCの仕様なんでしょうかね・・
882:デフォルトの名無しさん
21/03/18 11:08:31.02 JPJY5VhO.net
ダブルクリックして起動?
ランチャーとかUWSCから起動させるのは駄目?
ネットワークドライブを割り当てるとかはやってないのでわかりませんね
883:827
21/03/18 12:13:19.45 Y5jTQtWf.net
windowsのショートカットでも、ランチャーに登録してもダメですね。
だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ
884:デフォルトの名無しさん
21/03/18 12:38:28.87 Sp8r4MHz.net
コマンドプロンプトで実行できるなら、hoge.uwsがあるフォルダにUWSC.exeを入れて
BATファイルに
UWSC.exe hoge.uws
と書いてBATファイルで実行する手もある
885:827
21/03/18 13:45:17.72 Y5jTQtWf.net
>>832
やってみたら見事に
FILE not found :hoge.uws
が返ってきました。目の前にあるんですけどね・・
886:デフォルトの名無しさん
21/03/18 14:05:23.77 Y5jTQtWf.net
>だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ
改めてやったら、そもそもUWSC本体→開くでZドライブが見えない。
なんで開けたつもりになったんだろう・・謎
ショートカットは見えるので叩くとやっぱFILE not found
887:デフォルトの名無しさん
21/03/18 14:25:56.67 Sp8r4MHz.net
EXEファイルにするか、iexpress.exeでパッケージ化するか
URLリンク(wikiwiki.jp)
888:デフォルトの名無しさん
21/03/24 22:16:20.39 SjAM6MJ0.net
子ウィンドウを取得して操作したいのですがなかなか上手くいきません
ID=GETID("親ウインドウのタイトル")
idLength=GETALLWIN(ID)
FOR i = 0 TO idLength-1
PRINT STATUS(ALL_WIN_ID[i],ST_TITLE)
NEXT
↑を実行したところ、返ってきたのは子ウィンドウではなく
子ウィンドウ内の要素でした。(ボタン、チェックボックス、ラジオボタン)
ID=GETID("親タイトル",,,"子タイトル")
↑は-1になります
やり方間違ってますか
889:デフォルトの名無しさん
21/03/24 23:30:49.98 ffF9L6R4.net
//ウィンドウIDを全て取得してみてIDとタイトルを調べる方法もある
n = GETALLWIN()
FOR i = 0 TO n-1
PRINT ALL_WIN_ID[i] + " " +STATUS(ALL_WIN_ID[i],ST_TITLE)
LOGPRINT(TRUE,100,50,800,1100)
NEXT
msgbox("stop")
890:デフォルトの名無しさん
21/03/25 00:14:40.63 dnI+vm3S.net
>>837
実行してみると
親ウィンドウのタイトルが、ウインドウの数+1表示されました
という事は自分が子ウインドウだと思っていたものは全て親ウインドウという事かな?
今日は遅いのでまた明日やってみます
ありがとうございました
891:デフォルトの名無しさん
21/04/09 09:20:46.01 vJdMFfhi.net
Windowsのユーザーを切り替えて、各ユーザーごとにマクロを実施していきたいの�
892:セけど、ユーザー切り替えはUWSCでは難しいですか?
893:デフォルトの名無しさん
21/04/09 09:27:52.43 Aph6z+sk.net
何したいか分かんないけどユーザー指定して操作対象のアプリ起動するんじゃダメなん?
894:デフォルトの名無しさん
21/04/09 11:17:30.70 RfO7RRDz.net
UWSCの範囲を超えるこえど
動かしたいユーザー列挙しといて
レジストリに自動ログオンと自動実行の仕掛け作っとけばいけそう
再起動→次のユーザーで自動ログオンして自動実行という流れで
895:デフォルトの名無しさん
21/04/09 11:58:31.99 AGu16ZxP.net
ユーザー分の台数を用意すればいい
10ユーザーいるなら10台用意するとかね
896:デフォルトの名無しさん
21/04/13 14:47:03.51 IqZsL8m5.net
神様ちょっと助けておくれ・・・
ブラウザのスクロールバーのボタン3回クリックの1セットを、
1セット×回数で10回行いたい(=最後は30回クリック)
forでかけ算すればいいんじゃね?とひらめいたが動くわけがなかった。
897:デフォルトの名無しさん
21/04/13 15:08:40.06 IqZsL8m5.net
for t=1 to 10
CHKIMG("scroll-down.bmp")
c=t*3
repeat
BTN(LEFT,CLICK, G_IMG_X,G_IMG_Y ,30)
sleep(1)
until c >c
next
untilの書き方にモヤモヤしているが・・・とりあえずエラーは出ない
永久にクリックし続けるだけで。
898:デフォルトの名無しさん
21/04/13 15:14:05.98 C7npRUyM.net
ブラウザの右下隅に下向きのボタンがあるが、それをクリックするという事かな?
899:デフォルトの名無しさん
21/04/13 15:16:34.28 IqZsL8m5.net
そうです。
ブラウザ上での作業を自動化したくて。
ボタンにかんしてはscroll-down.bmpで判定してます。
forのt使って
repeat
BTN(LEFT,CLICK, G_IMG_X,G_IMG_Y ,30)
sleep(1)
until t >t*3
にしてみましたがこれも永遠にクリック(tが1なんだから4で止まって欲しいのに・・・)
900:デフォルトの名無しさん
21/04/13 16:03:51.33 M7vT5OZZ.net
c > c
ワロタ
この不等式がおかしいと思わないってヤバない?
プログラムじゃなくて数学、いや算数レベルやん
901:デフォルトの名無しさん
21/04/13 16:11:32.97 C7npRUyM.net
//FORの入れ子でOK
//1回目 1*3、2回目 2*3・・・10回目 10*3
CHKIMG("scroll-down.bmp")
FOR i = 1 TO 10
FOR x = 1 TO i*3
SLEEP(1)
BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5)
NEXT
NEXT
msgbox("クリック完了")
902:デフォルトの名無しさん
21/04/13 16:36:03.26 IqZsL8m5.net
いろいろ試してる間にごちゃごちゃしてきたのですみませんね;
UWSCではforしか使ったことがないもので
>>848
入れ子でいいはずですよね・・・(同じコードだ・・・)
もう一回ためしてみます。
ありがとう。
903:デフォルトの名無しさん
21/04/16 14:51:43.21 uD9tfUyH.net
プログラムファイルから消した文言が表示されエラーになってしまいます
IFB CHKIMG ("C~.BMP")を("C~.PNG")に書き換えしたのですが、NOT FOUND ~BMP となります
(appdataなど削除し)ソフトの入れ直しや、違う名前のプログラムファイルを作成などしましたが改善せず。terapadを使用して書いてます
ご教示お願いします
904:デフォルトの名無しさん
21/04/16 14:53:20.85 hdR99Jx3.net
違うファイルを読み込んでいる
905:デフォルトの名無しさん
21/04/16 15:17:51.55 jul+q2bh.net
実行してるファイルと編集してるファイルが違ってたとかよくある
何でこのバグ消えねぇんだ?と思ってよく見たら違ってたと
906:デフォルトの名無しさん
21/04/16 21:43:26.23 Qutb4gNt.net
CHKIMGはBMPしか使えないからそのエラーになるだけで消した文が影響している訳ではない
BMPに戻せ
907:デフォルトの名無しさん
21/04/16 21:59:57.64 9Ra8nUSr.net
ちゃんとエラーメッセージ読むタイプと読まないタイプの違いが出たな
908:デフォルトの名無しさん
21/04/16 23:08:42.23 mtyX36ii.net
おお!出来ました!
皆様ありがとうございます
909:デフォルトの名無しさん
21/04/23 04:45:57.46 GWiJhS53.net
for文について困っていることがあります。
下記の処理Aのみ 繰り返す際に処理回数を1増やしたいです。
BTN(LEFT,CLICK,13,167,10)
For i = 1 to 100
KBD(VK_RALT,DOWN,50)
KBD(VK_RIGHT,CLICK,50)
KBD(VK_UP,CLICK,50) //処理A ※ ここの処理だけ 1回目は1回実行 2回目は2回実行 3回目は3回実行… にしたい
KBD(VK_RALT,UP,50)
NEXT
調べましたがどうしてもわかりませんでした。
for文の中の処理回数を増やす方法をご存じでしたら、教えていただけたら幸いです。
よろしくお願いします。
910:デフォルトの名無しさん
21/04/23 05:45:45.21 2JaREPAx.net
For i = 1 to 100
KBD(VK_RALT,DOWN,50)
KBD(VK_RIGHT,CLICK,50)
For j = 1 to i
KBD(VK_UP,CLICK,50) //処理A ※ ここの処理だけ 1回目は1回実行 2回目は2回実行 3回目は3回実行… にしたい
Next
KBD(VK_RALT,UP,50)
Next
911:デフォルトの名無しさん
21/04/23 05:56:06.69 kWPc6e52.net
やるじゃん!
912:デフォルトの名無しさん
21/04/23 06:00:49.79 GWiJhS53.net
>>857
できました!
なるほどfor文の中にfor文を入れて他の変数にiを代入すればいいんですね…
お忙しいところ教えていただきありがとうございました
913:デフォルトの名無しさん
21/04/23 12:41:11.27 Fs/FdOQM.net
いや別に代入はいらんけど…
914:デフォルトの名無しさん
21/04/23 13:40:06.30 gAgD293m.net
動けばいいんだよ
猿相手に説明してもしゃーない
915:デフォルトの名無しさん
21/04/23 14:54:53.39 zpT46eZ/.net
キーキー喚いて他人に噛み付くだけの猿は本当にしょうがないよな
916:デフォルトの名無しさん
21/04/23 15:13:24.53 gAgD293m.net
>>1読んでないのかな
917:デフォルトの名無しさん
21/04/23 15:35:59.73 Qd1iaOGD.net
無能な猿はすっこんでろって
918:デフォルトの名無しさん
21/04/23 18:49:02.98 k2R/iVu9.net
サルモンキーウッキー
919:デフォルトの名無しさん
21/04/30 21:19:57.52 gWvSQQ0Q.net
メモ帳上だと正常に機能するけど、動かしたいソフト上だと特定のキー(十字キーとかシフトキー)だけ受け付けないんだけどなにかわかるかな?
記録は出来て、中身を見るとちゃんとキーも入ってるけど再生時に特定のキーが無視されちゃう
920:デフォルトの名無しさん
21/05/01 02:52:48.63 MA8kI4AW.net
まず「動かしたいソフト」の名前を書け
921:デフォルトの名無しさん
21/05/14 14:13:35.87 2RtqhEo0.net
画像1と画像2のどちらかを認識した場合、認識した画像の座標を取得して処理Aを行いたいです
IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A
ENDIF
処理Aは同じですが、いまはこうして分けています
今後、画像3、画像4と増えていく可能性があるので毎回分けて記述しなくても良い方法はないでしょうか
IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1) OR CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A
このようにORを使って画像1が表示されてる最中に実行してみたところ、画像座標の取得に失敗してしまい処理Aが動作しませんでした
(PRINTで座標を確認してみたら-99999とかになってました)
922:デフォルトの名無しさん
21/05/14 15:09:08.52 K8K4yQFj.net
getdirでファイル一覧取ってきてfor-in-nextで画像ファイルの分だけループ回せばいいと思う
923:デフォルトの名無しさん
21/05/14 16:43:30.17 iQwZsiAA.net
chkimgxを使えばもっと簡単に書けるが、使わないなら
//画像1.bmp~画像2.bmpを検索してどれかを認識したら処理Aを実行しループを抜ける
FOR x = 1 TO 2
IFB CHKIMG("画像" + x + ".bmp", , , , , , -1, IMG_MSK_BGR1)
//処理A
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
BREAK
ENDIF
NEXT
924:デフォルトの名無しさん
21/05/14 17:02:47.72 2RtqhEo0.net
>>869-870
ありがとうございます、ですがすいません
文にしたときにわかりづらかったので変えていたのですが、
実際の画像ファイルはファイル毎に名前を変えていて連番ではなく、画像を認識する場所もそれぞれ異なります
925:デフォルトの名無しさん
21/05/14 17:37:15.98 iQwZsiAA.net
//BMPファイルの数を取得する
//BMPファイルは同じフォルダに入れておくこと
N = GETDIR(GET_CUR_DIR,"*.BMP",TRUE,0)
//GETDIR_FILES配列にはGETDIRで取得したBMPファイルのファイル名が全て入る
//BMPファイルを検索してどれかを認識したら処理Aを実行しループを抜ける
//CHKIMGで座標指定しないなら、パラメータ無指定でもOK
FOR x = 0 TO N-1
IFB CHKIMG(GETDIR_FILES[x])
//処理A
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
BREAK
ENDIF
NEXT
926:デフォルトの名無しさん
21/05/14 22:43:48.66 6hlMfvtI.net
>>871
>画像を認識する場所もそれぞれ異なります
ってこういうことかな
CONST e_bmp=0
CONST e_xOffset=1
CONST e_yOffset=2
// 画像と認識位置のセット
DIM aMultidim[][2] = "a.bmp",2,3 _
,"b.bmp",-1,-1 _
,"c.bmp",0,1
DIM i
DIM iLastSet = length(aMultidim) - 1
FOR i = 0 TO iLastSet
IFB TRUE = CHKIMG(aMultidim[i][e_bmp]) THEN
// 発見位置にオフセットを加味してクリック
BTN(LEFT, CLICK , G_IMG_X,+aMultidim[i][e_xOffset] _
, G_IMG_Y+aMultidim[i][e_yOffsetOffset])
ENDIF
NEXT
927:デフォルトの名無しさん
21/05/15 02:20:59.88 d0kD+s8i.net
やっぱchkimgxで組んだら?
わざわざ配列でチェック座標管理しなくて済むし
928:デフォルトの名無しさん
21/05/15 15:01:39.06 M0a+Mlf6.net
明確に座標が違うなら配列作ってforで回す方がいいと思うがね
929:デフォルトの名無しさん
21/05/18 01:52:43.80 IPcsF0ko.net
すいません、返事が遅れました
>>872-873の方法でいじりながら様子を見てみます、ありがとうございます
しかし元々の記述よりだいぶ複雑になるんですね…
CHKIMGXはなぜかウインドウがピカピカ光って煩わしいのでなるべく使わないようにしてます
別件ですがもうひとつ質問です
ランダムに表示される画像xを参照して処理を行う001.uwsというもののほかに、同じ画像xを参照するものの001.uwsとは異なる処理を行う002.uwsや003.uwsを作る予定です
・A.uwsの中身
WHILE TRUE
CALL B.uws
CALL C.uws
CALL 001.uws//処理が終わったらA.uwsに戻ってこさせたいので、ループ処理にはしていない
WEND
いまUWSCにはこのように記述したA.uwsを読み込ませています
説明が難しいのですが001.uwsと002.uwsを使う場面が明確に異なるので、
CHKIMGで画像1を認識したら、画像2や画像3を認識するまで以降002.uwsや003.uwsなど特定のuwsだけを読み込まなくなり、
逆に画像2を認識したら、画像1や画像3を認識するまで以降001.uwsや003.uwsだけを読み込まないようにしたいです
IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
CALL 001.uws
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
CALL 002.uws
ELSEIF CHKIMG( "画像3.bmp", , , , , , -1, IMG_MSK_BGR1)
CALL 003.uws
ENDIF
このように記述すれば良いのでしょうが、001.uws~003.uwsはループ処理させたくないのと、画像1~3は常に表示されているわけではないので困ってます
なにか良い解決策はないでしょうか
930:デフォルトの名無しさん
21/05/18 06:01:50.96 UDGz656x.net
ちょっと話しは逸れるけど
そもそもいちいちcallする必要あるのかな
関数化しちゃいかんの?
931:デフォルトの名無しさん
21/05/18 10:17:39.32 wQ5og2t5.net
定期的に出てくるけどCALLを関数代わりにしてる奴は頭おかしいからスルーして大丈夫
932:デフォルトの名無しさん
21/05/18 10:19:50.75 qh33yYe/.net
むしろファイルをcallできる言語仕様に驚きを禁じ得ない
933:デフォルトの名無しさん
21/05/18 10:31:01.04 4dF+L4dN.net
そこは include とか import と同じじゃないの
単機能を関数的に呼び出すのがおかしいってだけで
934:デフォルトの名無しさん
21/05/18 10:37:54.61 qh33yYe/.net
まあ確かにDLLと同じようなもんだと言われたらそれまでだけど
関数ポインタをディスパッチするような手間いらずで初心者でも手軽に使える点は評価したい
935:デフォルトの名無しさん
21/05/18 10:42:00.07 t/eWMALd.net
callもスクリプト単体で動くようにすると結構便利だけどな
スクリプトは実行時に読み込まれてるみたいだし関数と変わらん気がするが
936:デフォルトの名無しさん
21/05/18 11:10:02.73 qh33yYe/.net
利便性を優先すると使うための手続きが複雑になる
このトレードオフは言語開発者の永遠のテーマだろうな
937:デフォルトの名無しさん
21/05/18 11:14:19.63 4dF+L4dN.net
たぶん上の人は関数自体使い慣れなくてだいぶ抵抗があるんだろうな
老婆心的にはスマートな使い方教えたいけど
自分でメリット感じられないとなかなか移行は難しそうだ
938:デフォルトの名無しさん
21/05/18 11:30:39.35 qh33yYe/.net
DLLを使った方がカッコイイからというくだらん理由で
どう見ても静的リンクでいいだろうという場面でやたらDLLを使いたがる人もいる
シンプルにEXE一本で動かせるのにランタイムライブラリという必要条件が増えるけど
素人は複雑イコール技術が高度と感じることがあるのでなんとも言えない
939:デフォルトの名無しさん
21/05/18 12:16:39.91 AZFZk1uK.net
そもそも、起動した時点でcall先のファイルは一括して読み込まれるってのを分かってないよね
だから、読み込まないようにしたいっていう一文が出てくる
940:デフォルトの名無しさん
21/05/18 12:24:17.39 4dF+L4dN.net
>>886
それはそうなんだろうけど
874の人は関数的に使ってるから読み込ませたくない=実行させたくない って意図でしょう
それはそうと874の実際の質問内容考えてる人俺含めていない件w
後ででもしっかり読んでみようと思ってるけど論理問題のようだから意図や齟齬たどるの面倒よね
941:デフォルトの名無しさん
21/05/18 13:30:39.30 9AUeHlwd.net
>>876
CALLの使い方を間違ってる
942:デフォルトの名無しさん
21/05/18 13:51:29.74 qh33yYe/.net
CALLの正しい使い方のお手本を出してくれるそうだから
よく聞くように
943:デフォルトの名無しさん
21/05/18 14:17:24.85 XOsT82We.net
874です
以前、こちらのスレで長々と書くのではなく、ひとつの処理に対してひとつのファイルにしてCALLで読み込ませろって書いてあったのを読んだ気がしてそうしてました
よろしくおねがいします
944:デフォルトの名無しさん
21/05/18 16:19:21.98 KFxGhSSQ.net
CALLは意味が沢山あって意外と日本人に馴染みのない言葉だから仕方ないね
945:デフォルトの名無しさん
21/05/18 16:53:51.17 9AUeHlwd.net
>ランダムに表示される画像xを参照して処理を行う001.uwsというもののほかに、同じ画像xを参照するものの001.uwsとは異なる処理を行う002.uwsや003.uwsを作る予定です
ファイルを分ける必要がない
動けばどう書いても良いけど、難しく考えすぎて面倒くさい書き方をしてるようにしか思えん
946:デフォルトの名無しさん
21/05/18 16:58:47.86 0sQ29iV7.net
関数の使い方を覚えるべきだよね
947:デフォルトの名無しさん
21/05/18 20:28:58.68 9AUeHlwd.net
認識した画像ごとに処理を分ける例
IFBでダラダラ書くより読みやすく書ける
WHILE TRUE
SELECT TRUE
CASE CHKIMG("画像1.bmp")
処理1
CASE CHKIMG("画像2.bmp")
処理2
CASE CHKIMG("画像3.bmp")
処理3
DEFAULT
例外処理 //例外処理
SELEND
WEND
948:デフォルトの名無しさん
21/05/18 21:40:52.44 pImCnyq0.net
>>894
これは凄い発想
caseに式や関数使えるとか知らなんだ
949:デフォルトの名無しさん
21/05/18 22:21:22.88 wQ5og2t5.net
CALLしてるファイルの中でも関数化してるわけじゃなさそうだし
ファイルが増えればそのうち変数がバグってどこが原因か分からなくなる
950:デフォルトの名無しさん
21/05/20 05:48:05.89 xogd6JER.net
874です
CALLにしていた処理をまとめる方向で修正してます
>>894
自分はIFB~ELSEIFとの違いがわからず悩んでいます
CASE CHKIMG("画像1.bmp")で画像を読み取れば、
IFB~ELSEIFと同じひとつの処理に対してENDIFが必要ないってことでしょうか?
951:デフォルトの名無しさん
21/05/20 09:42:02.88 j8DWMRqC.net
>>897
書いてある通り>>894にとってはselectの方が読みやすいってだけだろ
IFBとELSEIFで段差ができる部分が揃う
CASEの方が文字数少ない
CHKIMGは書き方のバリエーションだからIFBと違いはないのでは
952:デフォルトの名無しさん
21/05/20 11:13:41.40 1BZg1gED.net
コードの可読性を意識し�
953:ト書いてるだけだがね 可読性の概念とかは プログラミング 可読性 でググれ 動けばどうでも良いという主義ならそれはそれで
954:デフォルトの名無しさん
21/05/20 11:22:16.62 HONoZ+FD.net
892のコンセプトしだいだけど
メンテナンス性拡張性とか加味するとifのほうがいいかもね
955:デフォルトの名無しさん
21/05/20 12:20:19.57 1BZg1gED.net
CASE CHKIMG("画像1.bmp") AND (CC = 1)
とかIFBの条件式と同じように書けるし、どうでも良い事ではあるがね
956:デフォルトの名無しさん
21/05/20 13:26:28.17 dsnUQ917.net
on N goto 1000,1100,1200,1300…でいけるよ
957:デフォルトの名無しさん
21/05/21 08:55:27.51 jCHc9CEs.net
874です
メインにしてるuwsの中に複数の処理をまとめた処理群AをCALLで呼び出してましたが、処理群Aをクラス化して、処理群Aのなかの各処理をPROCEDUREなどでメインのuwsに記述する
CALL 処理群A.uws
クラス名は処理群A、関数名は処理Aと処理B
IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
処理群A.処理A
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
処理群A.処理B
ENDIF
CALLの使い方はこれで大丈夫でしょうか?
958:デフォルトの名無しさん
21/05/21 09:47:46.96 hKnIbAZ8.net
UWSCってクラス使えたんだっけ!?使ったことなかった
>>903
それはともかくそれでいいと思うよ
処理A,Bを他のスクリプトから使わず規模も大きくないなら
CALL使わず1ファイル内の関数だけで済ますんでいいと思うけど
----.uws ここから
IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
処理A()
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
処理B()
ENDIF
procedure 処理A()
//Aの処理
fend
procedure 処理B()
//Bの処理
fend
----.uws ここまで
あと下部のprocedureをクラス化せずそのまま別ファイルにしてCALLするんでも動くよ
知ってるかもだけど念の為
959:デフォルトの名無しさん
21/05/21 12:44:57.04 04KdsCb/.net
話をループさせるなよw
960:デフォルトの名無しさん
21/05/21 12:55:06.38 hKnIbAZ8.net
スクリプト直CALLしてたのをクラス関数CALLにはしたけど
それはそれでいいがもっと簡単にはできるよ
って話なのでループではないと思うが
902みたいな関数の一番簡単な使い方も把握してるのか怪しかったし
961:デフォルトの名無しさん
21/05/24 09:07:34.94 j7BJolv/.net
CHKIMGの色幅がCHKIMGX1でも認識するくらいシビアな画像でも
CHKIMGXにすると判定できなくなる場合ってどうすれば良いですか?
CHKIMG使うしかないですか?
962:デフォルトの名無しさん
21/05/24 15:27:04.53 j7BJolv/.net
読み直したら間違えてた
CHKIMGX1じゃなくてIMG_MSK_BGR1で認識するくらいシビア
963:デフォルトの名無しさん
21/05/24 15:38:58.41 ULoozdN2.net
chkimgで認識できてchkimgxで認識できないってのがよくわからないんだけど
chkimgxのthresholdとかcolorの引数弄っても認識できてないの?
964:デフォルトの名無しさん
21/05/24 15:47:05.47 /wIz9r2w.net
>>909
画像によってはchkimgで認識してchkimgxだとしないのがあるね
見た目で緑系色が多いと認識しない感じ
965:デフォルトの名無しさん
21/05/24 16:22:49.00 ULoozdN2.net
>>910
chkimgxはキャプチャしたイメージをグレースケール化するので色は引数のcolorを弄らない限り関係ない
966:デフォルトの名無しさん
21/05/24 16:30:11.09 jIebElNo.net
btnでクリックできなくなったね。
967:デフォルトの名無しさん
21/05/24 17:28:10.19 VAxBPl7R.net
>>911
ソースのコメントみる限り、色指定した場合はグレースケール化と読めるが
指定した色とどれだけ近いかでグレースケール化した画像を使って マッチングの計算を行う
文字の色などを指定することで背景の変化に強いマッチング判定を行う
968:デフォルトの名無しさん
21/05/24 18:21:59.68 qg+aTsN4.net
>>913
ソースコードの関数も確認した
色指定あるときはgrayscale化
969:デフォルトの名無しさん
21/05/26 08:10:53.62 K14fqcy/.net
CHKIMGからのクリックができなくなってるなぁ。
画像認識まではするけど、クリックはしない。
管理権限で起動しても、だめだったなぁ。
WINDOWSのアップデート前後で変わってるから、そ�
970:アかなぁ。
971:デフォルトの名無しさん
21/05/26 11:01:01.07 XORx725k.net
>>915
ついに使えなくなったか
972:デフォルトの名無しさん
21/05/26 13:05:07.61 yYro70ts.net
アップデートは停止してるからわからないけど
使えなくなるならアップデートはしないでおこう。人柱サンキュー!ワハハハ!
973:デフォルトの名無しさん
21/05/26 13:56:10.97 9QyAf03y.net
バージョン 2004のままにしておくか
974:デフォルトの名無しさん
21/05/26 14:14:16.02 eqZO3XDC.net
Windows はいじらないほうがいいですね。
975:デフォルトの名無しさん
21/05/26 17:01:33.65 9QyAf03y.net
WEBツールの仕様変更でCLICKが使えなくなったのをDOWN,UPで対応させてるがバージョン変わったら使えなくなるんだろうか
待ち時間をランダムにして人間がクリックしてるように偽装して何とかなってる
BTN(LEFT,DOWN,G_IMG_X,G_IMG_Y,(RANDOM(500)+2000))
BTN(LEFT,UP,G_IMG_X,G_IMG_Y,RANDOM(500))
976:デフォルトの名無しさん
21/06/03 12:51:13.08 q8TMEvZw.net
MEMUというandroidエミュを使っているんですが
MOUSEORGでMEMUのウィンドウIDを指定して裏マクロにしようとすると、CHKIMGやPEEKCOLOR1回ごとにウィンドウの周りが白くなって一瞬(0.1秒くらい?)だけフリーズします
例えばIFB並べてCHKIMGの画像6個探すときは6回分のプチフリーズしてループ、6個のうち上から3個目がヒットするときは3回分の長さのフリーズの後に処理が始まるみたいになります
SAVEIMGの取得をMEMUのウィンドウIDではなくデスクトップにして、クリップボードからPEEKCOLORすれば止まらずに動きますが裏マクロになりませんし…
キーボードマッピング(MEMUの機能)で設定したキーをKBDで押すときは上のプチフリーズは起こらないんですが
977:デフォルトの名無しさん
21/06/03 13:55:27.25 8BEM7SHC.net
こちらからの報告は以上です。どうぞ
978:デフォルトの名無しさん
21/06/03 14:53:36.50 yaZ7gTV4.net
ラジャー、次の質問者どうぞっ!?
979:デフォルトの名無しさん
21/06/03 15:02:00.58 uxUjlRum.net
DorectXだと思うけど、peekcolor多量に回すmemuの画面がフリーズする
フレームバッファをその度にフル転送してるからじゃないのかなあ
で、画面フリーズするとどういう弊害がでてんの?
980:デフォルトの名無しさん
21/06/03 15:22:40.86 mewPK9u+.net
そうですか
981:デフォルトの名無しさん
21/06/03 15:43:58.08 PveMLo3f.net
特定のソフトに依存する質問については、そのソフトの環境を構築する手間暇掛けてまで答える気になれない
982:デフォルトの名無しさん
21/06/04 03:13:49.55 HrGwVRMF.net
Androidエミュごときで環境構築面倒とかいうのもどうかと
中華エミュだから入れたくないとかならまだしも
983:デフォルトの名無しさん
21/06/04 04:55:22.58 8MiFu8j6.net
ガイジあらわるw
984:デフォルトの名無しさん
21/06/04 09:57:52.95 AmUi7cYO.net
わざわざ無能な人のために環境構築してあげてやる道理なんかないでしょ
自分で頑張れと冷たく言い放っておしまい。ぶっちゃけ自分には関係ないからな。困ってるのは私ではなくアイツなのだからアイツが苦しむのはOK
私は上から目線で笑いながらからかってやるだけですよ
985:デフォルトの名無しさん
21/06/04 12:17:23.70 oeJhT1F4.net
環境作る義理ないならついでにいちいちそんなお気持ち表明しにこなくてええんやで
986:デフォルトの名無しさん
21/06/04 12:31:28.73 U0nNGufy.net
匿名掲示板で環境作る義理あるやつなんているのかな?
987:デフォルトの名無しさん
21/06/04 12:45:19.55 DM+caa8E.net
>>927
そう思うなら、答えてあげなさい
オレはやらん
988:デフォルトの名無しさん
21/06/04 19:32:48.15 AmUi7cYO.net
かくして、彼は泣きながら手動で頑張るのでしたとさ
チャンチャン♪
989:
990:デフォルトの名無しさん
21/06/05 20:12:02.91 AuKRvxXh.net
表マクロなら動くんだろ
それでいいじゃん
991:デフォルトの名無しさん
21/06/06 07:09:26.47 nFBl7Kad.net
昨日触り始めた信じられないくらいの初心者で申し訳ないですが知識をお借りしたく
・画像AとBの画像が同時に存在する時のみに画像Cをクリックしたい
・画像AとBの画像が無い場合は次に書いた処理を行いたい
これをしたいのですが1つ目の時点で画像Cをクリックしてくれないです
おかしなところだらけとは思いますがお助けください
While True
ifb CHKIMG("A.bmp") _
and CHKIMG("B.bmp") _
and CHKIMG("C.bmp")
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)
sleep(1/64)
elseif CHKIMG("D.bmp")
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)
sleep(1/64)
992:デフォルトの名無しさん
21/06/06 07:55:07.27 rQ15Fo4h.net
>>935
Andで一行にせずに書いて原因究明
横着しない
993:デフォルトの名無しさん
21/06/06 08:14:21.20 NIzk3ndz.net
横着のつもりはなくAndしか使えそうなのがわからず…
バラで使えそうな何かを探す旅に出てきます
994:デフォルトの名無しさん
21/06/06 08:27:55.32 rQ15Fo4h.net
>>937
そこまで書けてるのに、ifを分けて書くこと出来ない?
その書き方じゃ、本当にABCの画像が同時に存在して認識出来ているか確認できないでしょ?
画像って目視じゃ同じに見えても実は全く同じじゃなかったりするし
995:デフォルトの名無しさん
21/06/06 08:42:55.09 NIzk3ndz.net
>>938
一度に全て探そうとせずにtrue thenで次の画像を探させる方向で考えればいいのです?
996:デフォルトの名無しさん
21/06/06 08:53:18.19 Y/jc2SzG.net
>>939
ifb CHKIMG("A.bmp") then
print "found A"
endif
これでAを本当に認識できてるかどうか確認できる
997:デフォルトの名無しさん
21/06/06 09:09:30.18 BeC5o1Q9.net
いつもmsgbox使ってた
ifb chkimg("a.bmp")
print "g_img_x:"+g_img_x+" g_img_y:"+g_img_y
ifb chkimg("b.bmp")
print "g_img_x:"+g_img_x+" g_img_y:"+g_img_y
ifb chkimg("c.bmp")
print "g_img_x:"+g_img_x+" g_img_y:"+g_img_y
btn(left,click,g_img_x,g_img_y)
sleep(1/64)
endif
endif
endif
998:デフォルトの名無しさん
21/06/06 09:40:11.66 NIzk3ndz.net
ありがとうございます
今は出先なので帰ったらまた試してみます
また詰まったら力を貸してください
999:デフォルトの名無しさん
21/06/06 13:21:06.69 IWgw88U5.net
初心者が増えるのは良いな
UWSCがまだ死んでないという事だし
初心者向けの参考書書いても需要ありそうだから、何か書いてみるか
1000:デフォルトの名無しさん
21/06/19 20:28:31.54 h+5L1XCT.net
素人質問で大変恐縮なのですが
乱数を用いてcall先をランダムにする事って可能でしょうか?
rondam(5)
で1の時に
call a.uwsを呼ぶというようなことがしたいのですが
1001:デフォルトの名無しさん
21/06/19 20:43:34.89 EQ2vKl4E.net
可能です
1002:デフォルトの名無しさん
21/06/19 20:54:33.63 Lk+y+wSz.net
//0~e.uwsがあるとして、
SELECT RANDOM(5)
CASE 0
call 0.uws
CASE 1
call a.uws
CASE 2
call b.uws
CASE 3
call c.uws
CASE 4
call d.uws
CASE 5
call e.uws
SELEND
1003:デフォルトの名無しさん
21/06/19 20:56:22.82 Lk+y+wSz.net
RANDOM(5) なら 0-4だったな
SELECT RANDOM(5)
CASE 0
call 0.uws
CASE 1
call a.uws
CASE 2
call b.uws
CASE 3
call c.uws
CASE 4
call d.uws
SELEND
1004:デフォルトの名無しさん
21/06/19 21:22:37.66 h+5L1XCT.net
>>945-947
具体的な記述もありできそうです
ありがとうございました
1005:デフォルトの名無しさん
21/06/19 21:25:16.67 H3JZ4m/K.net
callはそういう使い方するものじゃないって
これだけ言われても理解しないんだな
1006:デフォルトの名無しさん
21/06/19 21:29:01.75 ptUlvasO.net
アホの質問にまともに理解していない馬鹿が得意げに答えるからこうやって誤った使用法が広まっていくのさ
1007:デフォルトの名無しさん
21/06/19 21:
1008:31:09.82 ID:Lk+y+wSz.net
1009:デフォルトの名無しさん
21/06/19 21:39:01.24 Lk+y+wSz.net
公式のサンプルの#1、#2のようなCALLの使い方もあるから、別に良いんじゃねという気もしないでもない
公式サンプル
URLリンク(web.archive.org)
1010:デフォルトの名無しさん
21/06/19 21:39:10.21 uJ2Gt/N3.net
あ、僕でも答えられる質問だ!
よーし張り切って教えちゃうぞ!
そしてこのざま
1011:デフォルトの名無しさん
21/06/19 22:00:38.89 Lk+y+wSz.net
この程度のことで凄い事になっとるなw
ギスギスしすぎ
1012:デフォルトの名無しさん
21/06/19 22:40:03.07 A8n9fwTn.net
初心者スレでも可能ではなく最適なものを理解した上で質問しなければならなかったのですね、スレが荒れる原因を作ってしまい失礼いたしました猿未満だったようなので猿レベルになるまで勉強してから質問するようにします
1013:デフォルトの名無しさん
21/06/19 23:21:45.35 25IvVjLU.net
質問することで質問したこと以外に発見することもあるからええんやで
1014:デフォルトの名無しさん
21/06/20 00:05:04.52 YihnOY9y.net
UWSCはそんな高尚なもんじゃないから気にするな
いい歳したおっさんには、一行もコードを書かずに喜々として叩いてる人の気持ちは分からん
1015:デフォルトの名無しさん
21/06/20 02:46:28.68 rWaLY8jt.net
説明が難しいんですけど一部分の動作だけオンオフってできますか?
AndroidエミュのNOXでゲームマクロってのに興味が出ていろいろやってるんですけど、
いろんな処理をwhileとfendの中に入れてるんですけど、その中の一部分だけ画像1を見つけた場合に画像2を見つけるまで他の処理に追加して繰り返し実行されるようにして、
画像1がいなければすっ飛ばすって処理を組み込みたいです
問題は画像1が1回しか表示されないので、都度chkimgで画像1を見つけて実行ってのができなくて、
オンオフみたいに画像1を1回でも見つけたら以降は画像2を見つけるまでwhileとfendの中に組み込めないかなって考えてるんです
1016:デフォルトの名無しさん
21/06/20 02:55:34.48 rWaLY8jt.net
call a.uws
while
//開始ボタンを押す
開始ボタンを押す処理
//終了ボタンを押す
終了ボタンを押す処理
//ここから
画像1を1回見つけたら以降は画像1がなくても画像2を見つけるまでa.uwsの中の処理を上2つの処理に加えたい処理()
//ここまで
fend
こんな感じのことをやりたいです
1017:デフォルトの名無しさん
21/06/20 06:27:18.41 tvAYOSZI.net
NOXの場合の考慮とか
画像1が1回しか見つからないこととか
chkimgを余分に実行して時間がかかることとか
置いておく
状態を変更できる変数を使って画像1と画像2を
見つけたかどうかという状態を管理する
変数の名前はgazou1mitsuketaじゃなくていい
call a.uws
gazou1mitsuketa = False
while True
(省略)
//ここから
ifb chkimg("画像1")
gazou1mitsuketa = True
endif
ifb chkimg("画像2")
gazou1mitsuketa = False
endif
ifb gazou1mitsuketa
a.tsuika()
endif
//ここまで
wend
1018:デフォルトの名無しさん
21/06/20 08:03:31.93 2nwNcO+1.net
>>960
option shortcircuit
call a.uws
gazou1mitsuketa = False
while True
(省略)
//ここから
ifb gazou1mitsuketa or chkimg("画像1")
gazou1mitsuketa = True
ifb chkimg("画像2")
gazou1mitsuketa = False
else
a.tsuika()
endif
endif
//ここまで
wend
1019:デフォルトの名無しさん
21/06/20 22:13:34.21 rWaLY8jt.net
while trueにwendでした、寝ぼけてました
>>961が正しいってことですかね?やってみます
1020:デフォルトの名無しさん
21/06/20 23:06:19.83 xqcz4eEH.net
>>962
959は958を効率よくした感じのはず
958でやってること理解できるなら959の方がいいと思う
1021:デフォルトの名無しさん
21/06/21 19:36:45.44 qUhNELyw.net
>>963
ありがとうございます
でもoption shortcircuitってどんな意味があるんですか?
調べてもいまいちわからなくて
1022:デフォルトの名無しさん
21/06/21 19:57:25.10
1023:xAMfoQlc.net
1024:デフォルトの名無しさん
21/06/23 09:11:36.97 mNR5QgFC.net
result = funcA() AND funcB()
という式があった時 funcAの戻りがFALSEなら
funcBを評価しなくてもresultの値はFALSEで確定となる
だからfuncBを評価しても時間の無駄なのでfuncBを呼び出さないのが短絡評価
ちなみに旧VBやVBAは短絡評価が無いが、C系やPythonは短絡評価が標準
後者に慣れてるならOPTION SHORTCIRCUITを有効にすると幸せになれる
1025:デフォルトの名無しさん
21/06/23 23:02:39.31 ZOV9Dozi.net
//ここから
ifb gazou1mitsuketa or chkimg("画像1")
gazou1mitsuketa = True
この場合、gazou1mitsuketa を見つけた場合、chkimg("画像1")を探さずにgazou1mitsuketa = True
で確定するってことであってます?
1026:デフォルトの名無しさん
21/06/24 02:23:59.47 00iTQ5wf.net
gazou1mitsuketaがTrueの場合(=すでに1回chkimg("画像1")がTrueになった後)は
gazou1mitsuketaの評価だけでTrueが確定するから2回目以降のchkimg("画像1")は実行されない
1027:デフォルトの名無しさん
21/06/24 19:13:43.20 PWbklwVl.net
>>968
すいません、短絡評価についてです
1028:デフォルトの名無しさん
21/06/24 20:30:05.47 dP2DIBfG.net
>>969
言葉が足りないからちゃんと書いて
そもそも「gazou1mitsuketaを見つけた場合」ておかしい
gazou1mitsuketaは見つけるものじゃない
1029:デフォルトの名無しさん
21/06/25 00:17:46.49 vMtaTkKe.net
すいません、それも言葉遣いだったようですが、>>967の部分が>>966の言う短絡評価ってことであってますか?
1030:デフォルトの名無しさん
21/06/25 09:53:18.96 EowRs67i.net
もうすでに答え出てるけど、複数条件式がある場合に、最初の条件一致のみでその条件式を評価できる場合、それ以降の追加条件をスルーするという事
1031:デフォルトの名無しさん
21/06/25 23:47:56.00 vMtaTkKe.net
じゃああってそうですね、ありがとうございます
1032:デフォルトの名無しさん
21/07/03 12:53:45.98 7+9XI9UL.net
Andoroidエミュでゲームの周回マクロ組んでるんですけれど画像認識の処理を範囲指定じゃなくて指定のプロセス内のみで行う方法ってありませんか?
1033:デフォルトの名無しさん
21/07/03 12:58:50.69 7+9XI9UL.net
エミュレーターウィンドウが他のウィンドウに隠れちゃうと画像認識処理が進まなくて困っているということです。
1034:デフォルトの名無しさん
21/07/03 15:31:03.86 m1bhd94m.net
MOUSEORG関数を使って頑張ると可能
1035:デフォルトの名無しさん
21/07/06 03:06:28.27 amsSEIe8.net
> id = GETID("**** - FANZA GAMES - Iron")
> Hnd = GETCTLHND(id, "Chrome_RenderWidgetHostHWND")
> MOUSEORG(Hnd, MORG_DIRECT, MORG_BACK)
>
> While True
>
> IFB CHKIMG("****_1.bmp")
> BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
> endif
>
> IFB CHKIMG("****_2.bmp")
> BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
> SLEEP(1)
> BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
> endif
>
> SLEEP(1)
>
> Wend
これでバックグラウンドでのブラゲの自動周回自体は機能するのですが
なぜか実行中はブラウザのタイトルバーなどがバグったかのようにずっとチラつきます
これが起こらないようにするにはどうしたらいいんでしょう?
上のものは解説サイトを元にしたもので
そこでの3行目は本来 MOUSEORG(Hnd, 2) でしたが何故かこれでは機能しなかったので
さらに調べてみたところ別のサイトにて MOUSEORG(Hnd, MORG_DIRECT, MORG_BACK) を見つけました
後者で正しく動きはしたもののチラつくようになってしまったという次第です
記述の仕方などが間違っているんでしょうか
教えてください
1036:デフォルトの名無しさん
21/07/06 07:20:51.43 /RjXbpw3.net
UWSCはヘルプファイルが優秀だから分からなくなったら読むことをオススメする
MOUSEORGでMORG_BACKを指定している時の画面のチラつきはどうしようもなかったと思う
諦めてそのまま使うか、
1037:MORG_FOREにしてウィンドウを最前面に表示させておくか
1038:>975
21/07/08 00:39:02.57 gAnN6jGv.net
そうなんですか
特に害も無いようなので気にしないことにします
ありがとうございました
1039:デフォルトの名無しさん
21/07/10 20:08:14.26 XM4MvmXG.net
ifb chkimg("img.bmp")
btn(left,click,g_img_x,g_img_y)
これで画像の中央または右下をクリックしたいのですが
xとyに画像サイズを手打ちする以外の方法ありますか?
1040:デフォルトの名無しさん
21/07/10 20:44:43.14 CnuMoVdC.net
>>980
btn(left,click,g_img_x + 50,g_img_y + 30)
こういうのではないってこと?
1041:デフォルトの名無しさん
21/07/10 21:58:25.41 QRyBoOzw.net
>>980
画像の縦横の幅から中央の座標は計算できるだろ
1042:デフォルトの名無しさん
21/07/12 01:07:25.55 8PUM0aGH.net
>>981
はい。頻繁に新しい画像に差し替える上に
毎回画像サイズが微妙に違うので画像の
右端と中央の値も自動で検出ないでしょうか?
1043:デフォルトの名無しさん
21/07/12 05:22:18.76 vUaIVbuw.net
>>983
それぞれの画像のサイズはお前が知ってるんだから指定したらいいのでは?
1044:デフォルトの名無しさん
21/07/12 10:24:19.84 H6QXN1y/.net
BMP画像の幅と高さを得る関数
URLリンク(poku.blog)
1045:デフォルトの名無しさん
21/07/12 13:04:37.72 IDkhHauo.net
自分はchkimgxの関数使ってるな
1046:デフォルトの名無しさん
21/07/12 22:40:23.83 huq3V1Ev.net
>>984
サイズは調べないと分かりません。
頻繁に変わるサイズをいちいち確認するのは
中々手間な作業なので省けるなら省きたいです。
1047:デフォルトの名無しさん
21/07/12 23:51:06.13 8VMj3XKP.net
>>985で出来ました
ソース貼り付けただけだとうまく動かなかったので文字を囲う"と計算式のマイナスを直したらちゃんと動きました
情報公開する方はちゃんと動くものを出してほしいですね
1048:デフォルトの名無しさん
21/07/15 05:11:03.79 mj6R5ge4.net
> 情報公開する方はちゃんと動くものを出してほしいですね
清々しいまでの乞食だw
1049:デフォルトの名無しさん
21/07/15 07:09:47.12 BwKcyqiC.net
>>989
気持ちよくしてくれた方に対して乞食呼ばわりは失礼です
まだ義務教育を受けている段階の方なら意味をはっきり理解していない言葉は辞書を引く癖をつければ間に合います
1050:デフォルトの名無しさん
21/07/15 07:28:32.91 9d/0yVjN.net
清々しい(きよきよしい)キチガイ
1051:デフォルトの名無しさん
21/10/30 19:25:40.38 tA37D2o5.net
昔PRO購入していたUWSCを最近ちゃんと使い始めて、初めてこのUWSCスレみつけた!
初~中級者な自分に有益な情報多くてほんと助かります(言い争いも多いけど)。
本スレのほうも楽しみ。
あと作者が亡くなられてたということで本当に残念です。昨日知りました。
このスレが消える前に自分メモ用にログ残したった。
みんな初心者卒業しちゃってて継続なさそうだし。
1052:デフォルトの名無しさん
21/10/30 19:40:25.15 BIRu0arL.net
なんで書き込みないのかと思ったらこっちは初心者用だからなのか
1053:デフォルトの名無しさん
21/11/12 20:31:09.08 9I9Wghw5.net
UWSCはwindows10で動作するんですか?
1054:デフォルトの名無しさん
21/11/12 20:33:23.14 JKu/AJc8.net
>>994
全機能が使えるかは分からんが、俺の用途では普通に使えてる
1055:デフォルトの名無しさん
21/11/12 22:56:54.17 xoJHoay5.net
>>994
普通に使える
IE関係の機能は使えないのがあるかもしれないが、IE使ってないから分からん
1056:デフォルトの名無しさん
21/11/13 09:59:44.60 CrYSxUjw.net
>>995-996ありがとう
画像認証が出来ないOSの設定なのかな?
1057:デフォルトの名無しさん
21/11/13 11:16:47.86 Oi0tyZlY.net
実際にうまく動作しないならそう書け
具体的に書けば教えてもらえるだろう
1058:デフォルトの名無しさん
21/11/14 00:12:11.79 tEJjUPzv.net
うめ
1059:デフォルトの名無しさん
21/11/14 07:53:25.02 xN0MYk0E.net
誰か作者の魂を呼んでくれ
1060:デフォルトの名無しさん
21/11/16 01:02:55.97 fqXCMnDe.net
999
1061:デフォルトの名無しさん
21/11/16 01:10:18.00 b0ZMvWtK.net
ご冥福をお祈りします
1062:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1148日 12時間 56分 29秒
1063:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています