UWSC初心者用スレat TECH
UWSC初心者用スレ - 暇つぶし2ch600:デフォルトの名無しさん
19/11/25 22:32:08.47 QpqOy3LM.net
x86→x64だと結構影響あるよ
特にActiveX使ってるとバグ作り込みやすい

601:デフォルトの名無しさん
19/11/26 00:20:42 Swtl+iDB.net
sckeyって裏マクロ非対応ですか?
変数に入れた文字列を送りたいのですが・・・

602:デフォルトの名無しさん
19/11/26 02:13:46.52 Swtl+iDB.net
すみません、sendstrの間違いでした、、、

603:デフォルトの名無しさん
19/11/26 16:25:19.36 Mtvvcsi1.net
>>561
どのバージョンからか忘れたけどifでも ifb でもどっちでも良くなったと説明書きがあったと思うのですが
それ以来ifb は使用してないです 結構昔です 10年以上前かも
>>562
今まで動いていたのは作者のバグだったのでしょうか?
それよりエラーメッセージが日本語になったのは驚きました
あとwin7のエラーメッセージは編集して行が変わっててもその都度エラーが発生した行番号を表示しますが 
win10は編集して行が変わっても最初に表示した行番号を表示します
ファイルを編集してもすぐには反映されないのかと思いましたがとりあえずエラーは出なくなったので原因はわかりませ
後iniファイルを起動時に読みこんだ値と変わってしまっていてまともに動きません
現在調査中ですがわかる方いたら教えて下さい
あと7ではタスクバーから起動したり終了させたり(マウス中ボタン)できてたのもできなくなって大変困ってます
他にも問題だらけでwin10への以降は不可能な気がしてきて気が重いです

604:デフォルトの名無しさん
19/11/27 02:18:16 7G4RG5sM.net
数年前の事(Win7→Win10、UWSCバージョンアップ)を今更騒いでも当時の記憶掘り出せるかは怪しいもんだと思うし
スクリプト全体像なり再現用のミニマムコードでもくれなきゃこっちで確認なんかできないよ
特にWin10では色々問題あったがほとんどの人はとっくに対応しちゃって何が問題だったか忘れてるか
UWSC自体に見切りつけて簡単に使えるところにしか使ってないというのが現状と思われる

てかね、Win10自体も最近1909出たばかリで、またUWSCの動作が何か変わっているかもしれないし変わってないかもしれない
ただ言えることはUWSCは今後更新されないので、改善は見込めないということ

605:デフォルトの名無しさん
19/11/27 03:42:15 DxUr7XIY.net
>>567
まさかと思うけどUWSCのフォルダを
Program Files
Program Files (x86)
に置いてないよね
もし置いていたら、いまからでも遅くないから、そこじゃないどこかへ

606:デフォルトの名無しさん
19/11/27 14:33:22 8E8c4VQb.net
そ~こではないど~こか~へと~

607:デフォルトの名無しさん
19/11/27 21:15:02.15 aGnYyAi4.net
excelブックのシートすべてに対して各シートの1行目に検索をかけ、「印刷対象」というワードが存在する場合、そのシートを印刷する
というマクロなのですが、1回目ループの印刷されたところでcomエラーが出てしまいます。
どうしたらよいのでしょうか・・・?
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
WITH EXCEL
FOR A = 1 TO .Sheets.count
.Sheets(A).Select
printiffind = .Range("1:1").Find("印刷対象") 
printif = .Cells(printiffind.row , printiffind.column).value
msgbox(printif)
IF printif = "印刷対象" THEN
.activesheet.printout
else
ENDIF
NEXT
ENDWITH

608:デフォルトの名無しさん
19/11/27 22:40:20


609:.96 ID:MWZwasL9.net



610:デフォルトの名無しさん
19/11/28 10:04:18.53 p/uKw1d3.net
Excelのマクロでよくねw

611:デフォルトの名無しさん
19/12/06 18:31:31 43TcIdUK.net
noxではなくMumuで裏マクロをしたいのですが、CMD = "~~"の中身を書き換えるだけでは動きませんでした
パス部分をMumuのadbがある場所にすればいいのかなと思ってこうしたら
CMD = "cd C:\Program Files\Mumu\emulator\nemu\vmonitor\bin & adb_server shell input touchscreen tap " + 100 + " " + 100
PRINT CMD
DOSCMD(CMD)

PRINTで表示されたのはこうで
cd C:\Program Files\Mumu\emulator\nemu\vmonitor\bin & adb_server shell input touchscreen tap 100 100
コマンドフロンプトに入力するとこう返ってきました
error: device '(null)' not found

本スレ21の>>879と同じ?だと思うのですが、>>880の指す「いつものという感じ」が何なのか分かりませんでした。

612:デフォルトの名無しさん
19/12/06 23:53:28.48 56eN38dl.net
>>574
server叩いて何してんのよという話
まずはコマンドプロンプトなりで普通にコマンド叩けるようになってからスクリプトにしなされ

613:デフォルトの名無しさん
19/12/10 19:46:27.81 lD8f3lrI.net
もうここは初心者用スレとして成立してないなw

614:デフォルトの名無しさん
19/12/11 00:59:28.66 VzIBlOls.net
本当の初心者なんですけどどこがおすすめですか?
さっぱり分かりません

615:デフォルトの名無しさん
19/12/12 10:56:26.42 lDgwg3+p.net
573です。sdk?入れてそこのadb.exe指すようにしたら裏マクロ動きました
DOSCMDから実際にタップされるまで半秒ほどかかっているのと、コマンド実行したらMumuを再起動するまでやたらカクつくようになるのはなぜでしょうか

616:デフォルトの名無しさん
19/12/12 11:26:37.80 u7RWFF/r.net
Mumuってエミュが重いか単純にPCのスペック不足

617:デフォルトの名無しさん
19/12/12 12:00:09.18 OHjSk6WK.net
スクリプトが悪いのでは
本スレで話題になってたように画像認識にウエイトがないとかそういう

618:デフォルトの名無しさん
19/12/12 19:50:24.51 D8fZkyt4.net
コマンドプロンプトで試して同じ挙動かどうか
まずは原因がUWSCなのか、PCその他環境なのか調べないと

619:デフォルトの名無しさん
19/12/17 21:25:34.41 +LcZYIpJ.net
excelのfindで見つからなかったときのcomエラー回避ってあるんでしょうか?
wikiみても載ってないし、vbaにあるIS NOTHINGも使えないし・・・

620:デフォルトの名無しさん
19/12/17 21:31:30.08 +LcZYIpJ.net
すみません、自己解決しました

621:デフォルトの名無しさん
20/02/07 17:05:22 4XbBvaET.net
saveimg(gazou,0,200,300,30,30,,0,img_fore)

とした時は今見えている画面の200,300の位置の30,30サイズのbmpが保存されますか?

またその画像を指定して同じ画面で画像検索できますか?

622:デフォルトの名無しさん
20/02/07 20:48:29.13 SnbR1xpB.net
されないんじゃない
てか動かしてから聞きにきてくれよ

623:デフォルトの名無しさん
20/02/09 14:17:47 +d0DSBvE.net
f12でソース見ると色の指定は#rrggbbで統一されてるのに
iegetsrcで全文抜き出して見ると部分的にrgb(n,n,n)になっている
なぜこんなことに…

624:デフォルトの名無しさん
20/03/02 09:25:47 1HOipiaV.net
すいません質問させてください
クリップボードに取り込んだwebのタイトルをそのままファイル名にして保存したくて調べているのですが
クエスチョンやスラッシュなどファイル名に使えない文字を変換してクリップボードに上書きする方法はありますか?
よろしくお願いします

625:デフォルトの名無しさん
20/03/02 09:33:54 1Poklgsp.net
変換とはどういうこと?消せばいいの?

626:デフォルトの名無しさん
20/03/02 09:50:5


627:7 ID:1HOipiaV.net



628:デフォルトの名無しさん
20/03/02 09:51:59 1HOipiaV.net
消すかアンダーバーなどの使える文字に変換したいと思ってます。

629:デフォルトの名無しさん
20/03/02 09:52:58 1Poklgsp.net
Replaceで置換は?

630:デフォルトの名無しさん
20/03/02 11:58:20 RHbccdbo.net
ありがとうございました。
Replaceでうまく変換出来ました。
助かりました。

631:デフォルトの名無しさん
20/03/09 21:11:27.70 bpMBC8cG.net
すみませんが、知っている方がいらしたら、教えて下さい。
Pro版のシリアルはなんですか?

632:デフォルトの名無しさん
20/03/09 22:23:49 xFD8Q/oe.net
いいえなんではないです

633:デフォルトの名無しさん
20/03/19 08:38:19.27 8+JNVm+N.net
ゲームでレベリングのマクロ組みたいんですが
操作としては左右移動(右移動キー押しっぱなしで左移動キーで調整するやり方)しながら左クリック連打だけです
while 1
KBD(VK_D,DOWN)
while 1
KBD(VK_A,DOWN)
sleep(1)
KBD(VK_A,UP)
sleep(1)
wend
wend
左右移動はこれでできたんですが、ここに左クリック連打入れようとすると上手くいきません
どうすればいいですか?

634:デフォルトの名無しさん
20/03/19 09:28:56.69 E5mfm90d.net
関数化してthreadで別々に動かす

635:デフォルトの名無しさん
20/03/19 09:36:31.31 8+JNVm+N.net
何やら新しいUWSC知識が必要のようですね
調べてきます

636:デフォルトの名無しさん
20/03/19 13:31:47 8+JNVm+N.net
まったく意味がわかりませんでした

637:デフォルトの名無しさん
20/03/19 13:39:26 Nl/flVcz.net
>>598
ヘルプのスクリプト構文のスレッド生成読んだ?
それに当てはめるだけなんだけど

638:デフォルトの名無しさん
20/03/19 14:00:08 8+JNVm+N.net
thread BTN()
BTN(LEFT,CLICK,666,374,200)
とかなんか色々やってみたけどだめですね

639:デフォルトの名無しさん
20/03/19 14:20:06 8+JNVm+N.net
他のマクロソフトと組み合わせて操作できました

640:デフォルトの名無しさん
20/03/19 14:32:16 E5mfm90d.net
それならuwsc2つ起動する方がマシな対処だが…まあ希望が満たせりゃあ何でもよかろ

641:デフォルトの名無しさん
20/03/19 15:51:14.43 I/ufwmzm.net
Threadって便利なんだけど変数に同時参照すると固まるのがな
確率的には物凄く低いんだろうけど・・・

642:デフォルトの名無しさん
20/03/19 16:30:35.09 Nl/flVcz.net
参照してるだけで変数を書き換えてなければ大丈夫とおもったんだけど

643:デフォルトの名無しさん
20/03/19 19:08:00 vTx0gGjB.net
スレッドが最大64個も作れるから面白いんだよな

644:デフォルトの名無しさん
20/03/29 20:54:34 Qbasze3R.net
初心的質問で申し訳ありません。
ページ内の画像を探し見つければクリック、見つからなければスクロール+画像検索、
を三回繰り返して見つからなければ処理を停止してメッセージを出すというマクロを考えているのですが、まぁ難しくて
とっかかりすらつかめていません。
ご教示いただけませんでしょうか。よろしくお願いいたします。

645:デフォルトの名無しさん
20/03/29 20:58:57 pPr1xaO6.net
自分ではどこまでできたの?コード貼ってくれ

646:デフォルトの名無しさん
20/03/29 21:50:02 /EyNUXLu.net
>>606
まずそれぞれ単体で動くものを作る
ページ内の画像を探す
クリックする
スクロールする
三回繰り返す
処理を停止する
メッセージを出す

あとは条件とかでくっ付けるだけ

647:デフォルトの名無しさん
20/03/29 21:59:10 Qbasze3R.net
>>607
>>608
すいません、一番基本的な動きすらまともに作れてません…

ifb chkimg("img.bmp")
btn(left,click,g_img_x,g_img_y)
else
KBD(VK_SPACE)
print "画像が見つかりません"
endif

648:デフォルトの名無しさん
20/03/30 02:39:01 bxGMTHZO.net
>>609
そのサイトがどうなってるかわからないからなんとも言えないけど
スクロール量をコントロールするの難しくないか?
違ったアプローチが必要な気がする

649:デフォルトの名無しさん
20/03/30 02:57:48.27 fgzboYRU.net
g_img_x g_img_yがどこの位置か知ってる
クリックするのはその座標で間違いない

650:デフォルトの名無しさん
20/03/30 03


651::21:30.15 ID:bxGMTHZO.net



652:デフォルトの名無しさん
20/03/30 05:32:35 Lez7EJJt.net
画像 = 画像の場所.bmp
カウンター = 0

while カウンター < 3
ifb chkimg(画像,画像の色、位置指定)
sleep(1)
btn(left,click,g_img_x,g_img_y,50)
else
btn(left,down,画面のどこかx,画面のどこかy,50)
mmv(スクロール幅)
btn(left,up,上と同じx,スクロール幅y,50)
print "再検索"
カウンター = カウンター + 1
endif
wend

653:デフォルトの名無しさん
20/03/30 09:11:09 K5J2OuWJ.net
スペースキーで1ページ分スクロールするの知らないのだろうか…

654:デフォルトの名無しさん
20/03/30 10:27:43.27 Lez7EJJt.net
>>614
ごめん、知らなかった
それってゲームのフレンド一覧でも使えたりする?

655:デフォルトの名無しさん
20/03/30 11:10:38 /ApxdN83.net
普通は無理でしょう

656:デフォルトの名無しさん
20/03/30 11:26:59.29 8cfGBpvw.net
いや、>>609で、スペースキー押してるじゃん
608の勘違いの可能性も否定できないけど、スクロールでまず思いつくPgDownじゃないから、多分、普段行っている操作なんだと思う
今の段階で、スペースキーでスクロールしない対応しても、複雑になるだけで意味ないよ

あと、
>>611さんのコメント、文尾に?がついてないせいで、逆の意味になってるよ
IF文の真偽が出てないけど、printの位置から、スクロールしなかったんだと思うから、とりあえず真と仮定
真の場合は、クリックが失敗してるわけだから、まず、クリック位置を怪しむべき

657:デフォルトの名無しさん
20/03/30 13:03:44 Lez7EJJt.net
>>616
無理かぁ
じゃあこのまま行くか

>>617
btnにx軸y軸はあるけど最後に時間入れてないのって問題ないの?

658:デフォルトの名無しさん
20/03/30 14:25:56 8cfGBpvw.net
608=612,4,7 は無理があるから別人だよね

btnの時間引数は、必要な場合もあるし重要だけど、必須じゃないよ
手でクリックして動作するタイミングなら問題無いよ
時間調整が必要なのは、フォーカスの変更の様な、直前のコマンドの結果、Windows上で何かが変るのを待つ必要がある場合
調整しないと、変る前に動いちゃう事があるから、思い通りに動かないんだよ
経験上、btnで時間調整するより、sleep使った方がうまくいったし

それよりも、g_img_x,yって画像の端だから、画像の中央側にクリック位置をずらさないと画像をクリックしたことにならないよ
画像ファイルを、実際の画像よりも小さめに切取った場合は別だけど

659:デフォルトの名無しさん
20/03/30 15:44:58.10 Lez7EJJt.net
>>619
ごちゃごちゃと横から質問してごめんよ
自分は608ではないよ
時間も必須だと思ってた
詳しくありがとう

660:608
20/03/31 00:24:53.60 q/ETdZzS.net
sleep(2)
SPEAK("処理開始")
img=PARAM_STR[0]
rep = PARAM_STR[1]//繰り返す回数

counter = 0
while counter < rep
ifb chkimg(img)
sleep(1)
SPEAK("画像発見。")
 CALL called.uws(g_img_x,g_img_y)
 counter = counter + rep
else
KBD(VK_SPACE)
sleep(1)
counter = counter + 1
endif
wend
IFB counter=rep
SPEAK("ストップ")
BREAK
ELSEIF counter>rep
SPEAK("次の処理へ")

endif
KBD(VK_SPACE)

661:608
20/03/31 00:30:49.69 q/ETdZzS.net
誤投…orz完全に使うやつをカキコしてしまった
皆様のおかげでなんとか動かせるものが作れました!ありがとうございます
別の質問になってしまうのですが、callで呼び出した関数の…例えば上記のストップで親含めて停止させることは出来ますか?
よろしくお願いいたします

662:デフォルトの名無しさん
20/03/31 10:40:38 EP7/8t0I.net
exitとexitexit�


663:イべよう どうでもいいけどwhile内のifbでいずれにせよsleepするならifbの外でいいのではと思った



664:デフォルトの名無しさん
20/04/04 21:15:58.74 yfraQy7x.net
画像検索する範囲をちゃんと座標で指定するようにしたら早くなった

665:デフォルトの名無しさん
20/04/15 01:17:38 Nxi8vX8D.net
ChkImgXって普通に使えてる?
なんかうまく作動しない

666:デフォルトの名無しさん
20/04/15 05:11:08.81 HYKxrR9Z.net
長時間使ってると極稀にエラー起こすけど基本問題無いな

667:デフォルトの名無しさん
20/04/15 07:04:01 +ql6+04R.net
>>625
癖はあるけど動いている

バックグラウンド動作の画像認識はDirectX描画じゃないと駄目っぽい
chkimgではヒットするのにchkimgxでは全くヒットしない画像がある。chkimgxっていうか使ってるOpenCVライブラリの問題なんだろうけど

668:デフォルトの名無しさん
20/04/25 20:57:41.86 +DYe+iEQ.net
uwscを使用していると稀に external exception C0000264. と出てくるのですが、これはどうしたら出なくなりますか?

669:デフォルトの名無しさん
20/04/26 11:35:57.42 yth2UhWM.net
0xc0000264で調べて諦めるといい

670:デフォルトの名無しさん
20/05/02 19:11:57.36 hfp4FbZC.net
chkimgxを複数の並列処理で使用したいのですが上手くいきません。
一つのプロセスでしか機能しないのでしょうか?
複数で使えるのであればやり方などお教え頂きたいです。

671:デフォルトの名無しさん
20/05/02 22:26:35 yTTamFYE.net
グローバル変数に結果格納してるわけでタイミングによっては書き換えられてしまうからでは
どういううまく動かないかが分からんけど、これが原因なら実行後すぐに別の変数に退避するかスレッド別になるようにライブラリ書き換えるか、等々

672:デフォルトの名無しさん
20/05/03 14:58:09 J77i8eFq.net
procedure 並列()
while trur
if chkimgx(画像1.bmp,指定id1~
msgbox(ok)
endif
sleep(1)
wend
fend

↑の様なものを並列処理で別のウィンドウidを指定し3つ程動かしているのですが、chkimgxでエラーが発生しました。と表示されて動作しません。
どういった方法を取れば解決出来ますでしょうか?

673:デフォルトの名無しさん
20/05/03 17:30:45 2n/B6drN.net
お前には無理だから諦めろ

674:デフォルトの名無しさん
20/05/03 19:36:38.64 JpRTnUDx.net
startup_chkimgx()してないだけでしょ

675:デフォルトの名無しさん
20/05/04 23:58:16 pqlhkoPy.net
>>631
> これが原因なら実行後すぐに別の変数に退避するか
それでもタイミング次第で駄目だよ

chkimgx実行前後に排他処理入れるしか解決方法ない

676:デフォルトの名無しさん
20/06/26 12:54:56.86 qsHwziaQ.net
サクラエディタの質問になってしまうのですが、指定した行、例えば2,6,14,32行を1度にコピーしたり挿入するにはどうすればできますか。
よろしくお願いします。

677:デフォルトの名無しさん
20/06/26 13:04:26 PH3cJrMz.net
何がよろしくお願いしますだよ、スレチ過ぎて回答なんか来ないぞ

678:デフォルトの名無しさん
20/06/26 13:44:24.55 ECSKM2w9.net
サクラエディタってマクロないのかよ

679:デフォルトの名無しさん
20/06/26 18:59:51.57 42Sy87qY.net
あったはず

680:デフォルトの名無しさん
20/06/26 19:24:43.88 nyM1H0WV.net
UWSCのマクロを作るのにサクラエディタを使っているけどスレチだな

681:デフォルトの名無しさん
20/06/26 19:32:51.02 nyM1H0WV.net
そういやサクラエディタと
大昔にMIFES、VZ、 WZエディタを使っていたけど
評判の良い秀丸エディタは使った事が無かった

682:デフォルトの名無しさん
20/06/26 19:59:38.01 ECSKM2w9.net
秀丸のマクロをUWSCのセレクトボックスに登録して呼び出して使ってたりする

683:デフォルトの名無しさん
20/06/26 20:10:29.72 42Sy87qY.net
秀丸エディタは有料だから手を出す気にならない

684:デフォルトの名無しさん
20/06/27 00:34:23.45 iUYo3nGX.net
秀丸=四千円もするもんな

685:デフォルトの名無しさん
20/06/27 07:47:14.58 Jk2b87/7.net
>>644
やめろ

686:デフォルトの名無しさん
20/06/27 14:33:58.98 LSvaexnY.net
このネタわかる人は高齢者

687:デフォルトの名無しさん
2020/07/03(


688:金) 01:22:06.10 ID:Dvup0ZMV.net



689:デフォルトの名無しさん
20/07/04 09:42:53.15 bhHjhVrL.net
>>647
UWSC.exeと同じフォルダにRecUws.dllありますか?

690:デフォルトの名無しさん
20/07/04 13:54:48 3Gp7+FfQ.net
>>648
あります
その後が分かりません…

691:デフォルトの名無しさん
20/07/04 14:06:52.81 BpefeSFV.net
     ○ ○
  ○
○      ○
    ●    ○
       ○
●が自機で、○が敵です
●から一番近い○を順にタッチしていきたいのです(●は移動するが○はその場所から消えない)
が、どうやればいいのか皆目検討がつきません
こういうアルゴリズムって何ていうんでしょう

692:デフォルトの名無しさん
20/07/04 14:11:12.78 BpefeSFV.net
間違えました
×(●は移動するが○はその場所から消えない)
○(●は移動する。○はタッチすると死骸×に変化する)
でした

693:デフォルトの名無しさん
20/07/04 16:00:55 rpET5GXf.net
アルゴリズムは知らんけど
CADCAMの工作機械ドリル穴あけパスの最短距離
自動生成機能みたいなやつだな

694:デフォルトの名無しさん
20/07/04 16:29:11.29 OTAHPrbr.net
巡回セールスマン問題?
これを真面目にやると面倒だけれど、
接近してきた画像を押すだけなら
野暮な力技で十分な気がする。

695:デフォルトの名無しさん
20/07/04 16:38:02 VhIEqfUN.net
>>650
単純に距離√(xx+yy)で当たり判定で良いんじゃまいか

696:デフォルトの名無しさん
20/07/04 17:17:22.17 DEQjmcqB.net
>>654
欲しいのは距離じゃなくて近い奴だから
ルート取る必要ないだろ。

697:デフォルトの名無しさん
20/07/04 17:38:19.56 TN5VprEm.net
>>655
は?

698:デフォルトの名無しさん
20/07/04 17:46:26.32 1QfEBuvL.net
ルートを計算しなくても大小関係変わらんだろ
今回に関してはバカに絡まれるデメリット背負ってまでルートの計算負荷を減らす意味はないと思うけど

699:デフォルトの名無しさん
20/07/04 17:56:59.79 VPpCSEzQ.net
>>651
白は移動したら移動後の位置から近い位置の黒にいくのと、それとも元の白の位置を基準にするのとどっち?
まあ、前者でも後者でもやることはchkimgなりで位置のリストが取得できるからそれ使って白位置の近似値からタップするだけよ
アルゴリズム? 知らんな

700:デフォルトの名無しさん
20/07/04 18:01:03 Mq6JcoKF.net
距離と分かる式にするか処理を少しでも軽くするかは一長一短で
自分が一番初めに思いついた方にしとく方が可読性が上がる
人に言われて変えるものではないと思う

701:デフォルトの名無しさん
20/07/04 18:08:20.26 DEQjmcqB.net
>>657
これさあ、昔読んだ叫ぶCプログラマっていう本に出てきた一節でさ。
それとも同じ作者のプログラマを笑えだったかな。

702:デフォルトの名無しさん
20/07/04 18:10:16.03 DEQjmcqB.net
>>659
この程度じゃコメントすら要らんだろ。
ま、距離の大小は2乗の時点で判明とかコメントつけときゃOK

703:デフォルトの名無しさん
20/07/05 14:07:22.77 s67fMTSC.net
1) 視界内の全敵位置取得
2) abs(自XY - 敵XY[数])で並べて近い敵に移動してタッチ
の繰り返しでやろうと思います
ありがとうございました

704:デフォルトの名無しさん
20/07/27 17:13:01.26 LFattNL9.net
noxで
1,画像Aを探してタップ(見つからなくなるまで)
2,画像Bを探して見つからなかった�


705:迚コにスワイプして1に戻る 3,画像Bが見つかったら終了 のような動作をさせようと思って以下のように作って見たのですが、画像Aを発見してループ2を一周した後は画像Aと画像Bが見つからないが交互に出てループ1から抜け出せない状態です。 print "テスト開始" while True //ループ1開始 while True //ループ2開始 ifb CHKIMGX("画像A.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color) print "画像Aを発見しました。" X1 = g_imgx_x + 5 + random(5) Y1 = g_imgx_y - 30 + 5+ random(5) // ウィンドウ枠分の座標補正とクリック位置調整 DOSCMD("nox_adb shell input touchscreen tap " + X1 + " " + Y1) sleep(2) DOSCMD("nox_adb shell input touchscreen tap 384 541") sleep(2) DOSCMD("nox_adb shell input touchscreen tap 272 523") sleep(2) else print "画像Aは見つかりませんでした。" break endif wend //ループ2終了 ifb CHKIMGX("画像B.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)=FALSE print "画像Bは見つかりませんでした。" DOSCMD("nox_adb shell input swipe 288 600 288 300 600") sleep(2) else print "画像Bを発見しました。" break endif wend //ループ1終了



706:デフォルトの名無しさん
20/07/27 17:21:22.43 LFattNL9.net
ちなみに画像Aがない状態でスタートすると、画像Aが表示されるまで下にスワイプ(途中に画像Bがあってもスルー)してループ2を1周してからまた画像AとBが見つからないループに入ってしまいます。
また、adbを使わないマウスが取られるマクロの方は一応問題なく動いてます。

707:デフォルトの名無しさん
20/07/27 18:37:45.17 Ig/59khU.net
winid = getid("NoxPlayer")だろうとwinid = getid("メモ帳")だろうと関係なくwinidが1になってしまうのは何故なんでしょうか。

708:デフォルトの名無しさん
20/07/27 19:56:01.58 VYBQARBr.net
>>663-664
単にスワイプ後の慣性で画面が動いてて画像認識出来てないだけじゃない?
画像をタップする座標は乱数入ってるのにその後のタップやスワイプは固定座標なのとか
色々ツッコミどころはあるけど、まずはタップとスワイプを関数化しておくのをオススメする
procedure tap(x, y)
  doscmd("nox_adb shell input touchscreen tap " + x + " " + y)
fend
procedure swipe(x1, y1, x2, y2)
  doscmd("nox_adb shell input swipe " + x1 + " " + y1 + " " + x2 + " " + y2)
fend

709:デフォルトの名無しさん
20/07/27 20:31:25.50 LFattNL9.net
>>666
回答ありがとうございます、スワイプ後の慣性も考えてsleepを長めに取ったり、最初の時点で画像Aが複数ある状態でスタートしても結果は変わらずでした。
procedureは使ったことがなかったので、調べながら修正してみます。

710:デフォルトの名無しさん
20/07/27 21:12:51.27 2I3xUck9.net
サイトハッキングて意外と簡単やな
URLリンク(re-file.com)

711:デフォルトの名無しさん
20/07/27 21:21:06.80 Y/C2ypnr.net
>X1 = g_imgx_x + 5 + random(5)
>Y1 = g_imgx_y - 30 + 5+ random(5) // ウィンドウ枠分の座標補正とクリック位置調整
これさあ
変数名って大文字小文字区別するんだっけ

712:デフォルトの名無しさん
20/07/27 21:49:14 LFattNL9.net
>>669
X1とY1をaaaとbbbにしてみたらちゃんと動作してくれるようになりました。
大文字と小文字を区別するにしても変数にx or y+数字は安直過ぎました。
解決方法を教えていただきありがとうございます。

713:デフォルトの名無しさん
20/07/27 22:31:39.36 3jtmTLJJ.net
>>668の本当の内容
【閲覧注意】【メキシコ】麻薬カルテル、元組織のメンバーを「皮剥ぎの刑」に処す - 18禁グロ
▼カテゴリ - 18禁グロには一部、異様・奇怪・猟奇的・暴力シーン・グロテスクな表現が含まれていますので、閲覧制限をしています。
1. 18歳未満は閲覧禁止です。
2. 耐性が無い方は閲覧しないでください。
3. 閲覧は自己責任でお願い致します。
※上記、18歳以上で同意できる方は入室


714:してください。 PASS:7777



715:デフォルトの名無しさん
20/07/28 01:07:54 dFO+mkSs.net
>>667
まず画像Aと画像Bを認識出来てる?
同じ画像に見えても表示される座標が変わると一致率も変わっているとかよくある

どこが問題か分かりやすくするために、デバッグは小さいパーツに分けてやったほうが良い
例えばスワイプ後に画像Bを探すだけのコードを試すとか

716:デフォルトの名無しさん
20/07/28 10:35:41 PZ7FD++0.net
>>672
画像Aや画像Bの認識は問題なく、>>669であるように変数にx1とy1を使っていたのが原因でした。

717:デフォルトの名無しさん
20/07/28 11:33:20.45 hWwhsWN2.net
どなたか>>665について分かる方みえませんか?
getid("アプリ名")をしても起動中のアプリは1、起動していないアプリは-1となり、1か-1しか結果が返ってきません。
ウインドウIDを取得したいのですが、何がいけないんでしょうか。
UWSC5.3.0.2、win10 64bitです。

718:デフォルトの名無しさん
20/07/28 11:45:37 PZ7FD++0.net
>>672
更に質問で申し訳ないのですが、procedure使ってswipe(x1, y1, x2, y2)のようにして簡略化することはできたのですが、ここから更にランダム性をprocedure上で反映させるにはどうしたら良いでしょうか?
とりあえず今のところメインとなるuwsファイルで
swipe(x1+ random(5), y1+ random(5), x2+ random(5), y2+ random(5))
のようにすれば動作することは分かったのですが、producerで一括して処理しようと思い
procedure swipe(x1, y1, x2, y2)
  doscmd("nox_adb shell input swipe " + x1+ random(100) + " " + y1+ random(100) + " " + x2+ random(100) + " " + y2+ random(100))
fend
としてみたのですがエラーは出ないもののなにも動作しない状態です。

719:デフォルトの名無しさん
20/07/28 12:32:50.82 BIndr6P+.net
>>674
winidはそもそも数値で表現されるオブジェクトじゃない
あえてそれを表示しようとすると1/-1で状態を返すという仕様なだけで別にidが1/-1ではない
>>675
doscmdの()内で+で記述すると加算された合計値じゃなくてそれぞれが文字列で結合されちゃうんじゃかいかな?
括弧でくくってやればいいと思うよ

720:デフォルトの名無しさん
20/07/28 13:09:15.41 PZ7FD++0.net
>>676
おっしゃる通りにしたところ上手く動作してくれました、ありがとうございました。

721:デフォルトの名無しさん
20/08/01 10:55:03 A3rem5Z4.net
吹き出しが下から噴き出すプログラムを作ってみた

PUBLIC RZZ=0
While true
FKIDSI()
Fukidasi(RZZ,1200,10,0,3,,,$AAAAAA)
Wend
procedure FKIDSI()
IF RZZ<64
Thread FKDSSUB()
ENDIF
fend
procedure FKDSSUB()
RZZ = RZZ + 1
Xinc = ((random(6)+1) * (random(2)*2 -1)) /1.9
Yinc = (random(8)/10+0.2) /4
z=random($FFFFFF)
X=640
Y=1010
for i=-100 TO 100
Fukidasi(" ", X, Y, 0, ,,,Z)
SLEEP(0.01)
Ymov = Yinc * i
X = X + Xinc
Y = Y + Ymov
next
RZZ = RZZ - 1
fend

722:デフォルトの名無しさん
20/08/01 10:59:28 Bo5IFXl7.net
fendって何だっけ

723:デフォルトの名無しさん
20/08/01 10:59:55 Bo5IFXl7.net
procedure閉じてるのか

724:デフォルトの名無しさん
20/08/01 11:05:00.24 A3rem5Z4.net
あとマウスカーソルについてくる吹き出し
PUBLIC RZZ=0
PUBLIC X=0
PUBLIC Y=0
XX=0; YY=0;
WHILE TRUE
FOR RZZ=0 TO 55
F=0;
WHILE (F=0)
XX = X; YY = Y;
X = G_MOUSE_X; Y = G_MOUSE_Y;
IF (XX <> X) OR (YY <> Y)
F=1
ENDIF
WEND
Thread FKDSSUB()
NEXT
WEND
procedure FKDSSUB()
TZ=RZZ-1
IF TZ = -1 THEN TZ = 55
Fukidasi(RZZ, X+10, Y+10, 0, ,,,random($FFFFFF))
WHILE TZ <> RZZ
SLEEP (0.01)
WEND
FEND

725:デフォルトの名無しさん
20/08/01 12:38:15.63 I5HfbaHP.net
死ぬほど読みづらいから


726:コード貼る時は適度な改行とインデントつけてくれ 5chだとアンダーバー4つか全角スペース2個でインデント1つになる while True ____ifb while True   ifb



727:デフォルトの名無しさん
20/08/01 14:01:23.40 U7vGE7b3.net
>>678 >>681
インデントされてれば引用で専ブラで見れるはず

728:デフォルトの名無しさん
20/08/01 14:34:06.11 Bo5IFXl7.net
自分で好きに整形しろ

729:デフォルトの名無しさん
20/08/01 16:55:40.92 Uz4ilC0D.net
「Harigami」を使ってみてはどうだ
URLリンク(harigami.jp)

730:デフォルトの名無しさん
20/08/16 21:01:17.32 k+kUeFyT.net
CHKIMGXをWHILE TRUEの外に出すとエラーが出てしまいます。
なぜなんでしょう
下記でメインからサブ関数でCHKIMGXは読んでいます
// ChkImgX関数をインクルード
CALL ChkImgX.uws;
while true
TRY
startup_chkimgx() //CHKIMGX関数開始
 ****ここにプログラム
 CHK(LOC)
FINALLY
shutdown_chkimgx() //CHKIMGX関数停止
ENDTRY
wend
function CHK(loc[])
  CHKIMGXをここで使う
FEND

731:デフォルトの名無しさん
20/08/17 02:52:44.83 UvoRp25i.net
何エラーよ

732:デフォルトの名無しさん
20/08/17 19:53:01.04 KciEC6qM.net
*_chkimgxは何度も呼び出すような関数じゃないよ
どっかでリークしてるオチじゃないの

733:デフォルトの名無しさん
20/08/17 23:35:10.11 wjXkQQv2.net
TRYがWHILEENDの中でずっと回っていたのだけど、
WHILEENDの外に出したら治った・・・
皆様ありがとう

734:デフォルトの名無しさん
20/08/18 12:57:20.18 suCzDasT.net
CHKIMGやCHKIMGXの画像検索範囲について質問です。
大きさ10x10の画像を0,0 100,100の範囲から探す場合
画像左上のピクセルが100,100に到達するまで検索しているのか
画像右下のピクセルが100,100に到達かのどちらでしょうか

735:デフォルトの名無しさん
20/08/18 18:59:40.87 5Qy/mHcW.net
右下かなと思うが、試してみたら?
チェッカーパターンな背景作ってマスの画像で検索

736:デフォルトの名無しさん
20/09/02 22:09:27.14 fUjg46/2.net
uwscの実行中に離席した場合などでディスプレイの電源が切れないようにする方法ってないでしょうか?
今は5分に1回マウスを動かす処理を入れて対応していますがネット閲覧時にいきなりマウスが動くので操作しにくいです
コントロールパネルの電源オプションで設定を変更すればよいのはわかりますがuwsc実行中だけというのが理想です
よろしくお願いします

737:デフォルトの名無しさん
20/09/02 22:16:34.51 wdeVv3mH.net
UWSCで電源オプションの設定を変えれば

738:デフォルトの名無しさん
20/09/02 22:57:57.26 85wlAF9N.net
>>692
事前に2種類の電源プランを作っておき
UWSCのスクリプト内で
doscmd関数を使い
Powercfg.exeに電源プラン変更コマンドを送る
コマンドについては以下を参考に
URLリンク(ascii.jp)
うまく組めばマクロ終了時に電源プランを自動的に戻すことも可能

739:デフォルトの名無しさん
20/09/02 23:09:28.81 pBGvn6/E.net
//五分に一度 ALT を押してスリープ回避
while 1;sleep (300);kbd(vk_alt);wend;

740:デフォルトの名無しさん
20/09/03 00:02:11.56 vpra+F8w.net
>>692
DEF_DLL SetThreadExecutionSta


741:te(DWORD): DWORD: kernel32 CONST ES_CONTINUOUS = $80000000 CONST ES_DISPLAY_REQUIRED = $02 SetThreadExecutionState(ES_CONTINUOUS or ES_DISPLAY_REQUIRED)



742:デフォルトの名無しさん
20/09/03 20:27:05 ha/scr+l.net
>>692
外部ソフト併用で良ければ
FavSleepStopはおすすめ。

743:デフォルトの名無しさん
20/09/24 12:33:36.91 eUQ7jF7Q.net
画像aが出るまでループし、画像aが出たらreturnという仕組みにしたいのですが
ループせず最後の所で止まってしまいます。少々省略しないと貼れないので省略しますが
これどうなっているんでしょうか?どこが間違いでしょうか?そのまま貼ります。

WHILE (CHKIMG("A.bmp")=FALSE)
SLEEP(0.5)
KBD(VK_P,DOWN,50)
KBD(VK_P,UP,50)
SLEEP(0.5)
WEND
IFB CHKIMG("A.bmp")
SLEEP(0.5)
KBD(VK_O,DOWN,50)
KBD(VK_O,UP,50)
SLEEP(0.5)
ENDIF

744:デフォルトの名無しさん
20/09/24 12:35:05.91 eUQ7jF7Q.net
画像aが出るまでループし、画像aが出たらOという仕組みにしたいだった

745:デフォルトの名無しさん
20/09/24 17:12:59.11 FiwMBeQt.net
単にループさせるだけなら
While 1

Wend
で良くね なんか条件が書いてあるからループしなくなるのでは

746:デフォルトの名無しさん
20/09/24 17:13:38.10 FiwMBeQt.net
あとWendより後にifbがあるからループの中に条件がないね

747:デフォルトの名無しさん
20/09/24 21:34:49.94 mGnJTDMd.net
>>698
これをみても特に問題があるとは思えない
>ループせず最後の所で止まってしまいます。
疑問1:ループしていないことをどう確かめたのか?
疑問2:最後の所とはどこか?
疑問3:終わるではなく止まるなのか?
ループ中、ループ後に PRINT か MSGBOX かを入れて
たしかにそこを通ってるかどうか確かめたほうがいいと思う
MSGBOXを使う場合はどうせテストなのでループ中のSLEEPは
2秒くらいとったほうが扱いやすい

748:デフォルトの名無しさん
20/09/24 21:45:43.40 /TzBJHGH.net
こんなこと書いてるしネタだろう
>少々省略しないと貼れないので省略しますが
>そのまま貼ります。

749:デフォルトの名無しさん
20/09/29 22:34:47.52 FsRpumhX.net
記録すらできないアプリがあるのか…これどうなってんだ
アプリはR2games.comのR2Client
12月末のFlash終了後このclientで引き続きプレイできるそうなのでインストールしてみたのだけど
UWSCで記録が全くできないので自動化が出来ない

750:デフォルトの名無しさん
20/09/29 23:38:54.63 0MYSuhb/.net
まあ、中身Flashのままみたいだからなあ

751:デフォルトの名無しさん
20/09/29 23:48:20.89 FsRpumhX.net
いやgetidすら取得できない

752:デフォルトの名無しさん
20/09/30 16:30:38.78 QVZpoBrX.net
flashのid取得するにはまずウィンドウidとって、その次にハンドル取得しなきゃダメだよ

753:デフォルトの名無しさん
20/10/01 19:39:40.83 LoI0BqO6.net
>>704の件は解決したというか
今日起動してみたら問題なく取得できた
なぜ取得できなかったのかはわからないけどこれで懸念事項は払拭できた
>>707は勘違いしてるけど解決したからいいです

754:デフォルトの名無しさん
20/10/02 14:26:32.02 fC3or5Mo.net
ある期間からある期間の月数って、
どうやったら求められる?
例えば2019年10月から2020年3月は6ヶ月。
これを求めたい。

755:デフォルトの名無しさん
20/10/02 14:38:31.92 b1fFJk4v.net
検索したけど分からんかった
年×12+月で引き算+1したら?

756:デフォルトの名無しさん
20/10/02 15:37:29.99 fC3or5Mo.net
なるほど!
頭、いいね。
やってみる

757:デフォルトの名無しさん
20/10/03 09:16:10.12 A1z8cMTv.net
autoitを使ってる人いる?

758:デフォルトの名無しさん
20/10/09 00:15:11.67 fWH520+c.net
>>712
今は使ってないが、前は結構使ってた。

759:デフォルトの名無しさん
20/11/03 22:30:50.25 Ic7gUSD+Q
【100万円】シルク、ルイ


760:・ヴィトンで全身コーデを買う。https://www.youtube.com/watch?v=ArFG6a3zymw【人生最高額】シルク、30,000,000(三千万)円の限定腕時計を買う。https://www.youtube.com/watch?v=I0U7hZR-Wp8フィッシャーズ、新車を買う。https://www.youtube.com/watch?v=u3oJ0AEDaJg【人生最高額】てつや、時計をヒカキンさんと買う!!https://www.youtube.com/watch?v=14YguTpGRwc虫眼鏡、ついにレクサスLS納車https://www.youtube.com/watch?v=2dgL91ME-M8ブラーボりょう、アストンマーティンDB11Volanteを購入しました!!!https://www.youtube.com/watch?v=XSK5yHETdh4てつやの超高級車が届きましたhttps://www.youtube.com/watch?v=HKHIPgK7CIQ人気YouTuberが選んだ車からクジで決めたものガチで買いますwwwwwwwwwhttps://www.youtube.com/watch?v=RX-1oXyqzO4はなお、ついにアルファード納車しました。 【クジ引きで引いた車購入】https://www.youtube.com/watch?v=m-melUBl8YQ【10000円ガチャ】1回10000円の超高額ガチャ回したらついに大当たりキタァァァァア!!https://www.youtube.com/watch?v=Ha-s9KD1LyQ



761:デフォルトの名無しさん
20/11/06 23:06:53.83 362vvKB1.net
2つのスクリプトを同時に実行したいのですがどのような処理を書くべきでしょうか?
//同時.uwsの内容
call 処理1.uws
call 処理2.uws
こんな感じで書いても処理1.uwsが動くだけです
処理1.uwsが終わったら処理2.uwsが動くと思うのですがそうではなく1と2を同時に実行して別々の動きをして欲しいです
uwscの実行ファイルとそれぞれのスクリプトファイルは全て同一フォルダにあるものとします
よろしくお願いします

762:デフォルトの名無しさん
20/11/06 23:09:52.79 oall+sef.net
thread 処理1.uws
thread 処理2.uws

763:デフォルトの名無しさん
20/11/07 20:04:03.01 vukJSlcq.net
thread が実行できるのは関数なので
処理1.uws, 処理2.uws を関数化したあとで
call 処理1.uws
call 処理2.uws
thread 処理1()
thread 処理2()
とする必要がある
しかしそれだけだと、これを実行しているメインのプロセス自体が
thread を2つ起動した直後に終わってしまう
なのでフラグなどを使っていつまで実行すればいいのか
コントロールする必要がある
thread にする必要がとくになければ
uwsc を2つ実行すればいい
TEST.BAT ---
start C:\uwsc\UWSC.exe C:\uws\処理1.uws
start C:\uwsc\UWSC.exe C:\uws\処理2.uws
---
あと複数のuwsを実行する場合はマウスカーソルや
キーボードは1つしかないので
そういう操作がある場合は
奪い合いが起こることを意識する必要がある

764:デフォルトの名無しさん
20/11/08 09:07:47.79 96WGa2GX.net
>>716
>>717
試行錯誤してて返事が遅くなりました
スクリプトの挙動が少しおかしいですが目的通りに動いてくれるようになりました
なんか変だけど動いてるからまあええかとなってしまうから進歩しないんだなと実感しました
ありがとうございました

765:デフォルトの名無しさん
20/11/15 21:51:04.27 PgpnhPdo.net
参考にしようと思って開いたnaverまとめが9月末で閉鎖してる…

766:デフォルトの名無しさん
20/11/25 11:53:39.76 Qh6houu2.net
>>718
同時に実行されると困るような関数使ってたりするとはまるので注意

767:デフォルトの名無しさん
20/12/26 22:00:19.24 60sfrFxz.net
NoxPlayerでuwscを利用していて質問です
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を認識するのに裏マクロ中だと認識してくれません
2.bmpはPrintScreenからトリミングしたもので、動きなどない固定画像です
CHKIMGX( "2.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
当初はこのように記述していたのですが、これだとアクティブ中でも見


768:つけてくれなかったのでCHKIMGの記述にしてみました アクティブではない状態で2.bmpを認識するにはどうすればよろしいのでしょうか



769:デフォルトの名無しさん
20/12/26 23:50:39.26 c93B7w+q.net
>>721
SAVEIMGのIMG_BACKで取得できなかったら
アプリ自体が非アクティブ時の描画をサボってるから
どうやっても取得できない

770:デフォルトの名無しさん
20/12/27 00:47:30.15 n8fvXRaD.net
>>721
VMware等仮想OSの方でNOXを動作させてアクティブにすれば
Vmwareを最小化にしても内部ではアクティブですからね
こういうときは多コアのCPUが有利なので8コアや16コアのCPUを買おう!

771:デフォルトの名無しさん
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("親タイトル",,,"子タイトル")
PRINT
↑は-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 と同じじゃないの
単機能を関数的に呼び出すのがおかしいってだけで


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