UWSC初心者用スレです
わかってる人はこっち
自動化ツールUWSC使いよ集まれ21
http://egg.5ch.net/test/read.cgi/software/1533818531/
降臨される神々においては相手を人と思わず猿と思し召されるよう
何卒お願い申し上げます
UWSC初心者用スレ
■ このスレッドは過去ログ倉庫に格納されています
2018/09/24(月) 12:13:49.92ID:an35jPjo
776デフォルトの名無しさん
2021/02/13(土) 11:45:04.70ID:ZGnem3aY Seleniumは?
777デフォルトの名無しさん
2021/02/13(土) 12:07:26.24ID:dZ6ue5BC Seleniumでもpuppeteerでも好きなもの使え
778デフォルトの名無しさん
2021/02/15(月) 20:45:26.14ID:fa+YzTlt webdriver使えば?
779デフォルトの名無しさん
2021/02/16(火) 15:50:22.10ID:+7e6mc9m UWSCのスクリプト集が死んでるサイトしかないけど、見る方法は・・・
http://canal22.org/qanda/uwsc_script/
http://canal22.org/qanda/uwsc_script/
780デフォルトの名無しさん
2021/02/16(火) 23:02:31.35ID:N5xcmHzO archiveでどーぞー
781デフォルトの名無しさん
2021/02/28(日) 12:00:54.27ID:zlvqXFLj Aという動作をループさせながら、Bという画像が現れたら数分後にBをクリックするとかできますか?スリープだとAの動作が止まってしまうので…
782デフォルトの名無しさん
2021/02/28(日) 12:04:06.87ID:Gf8vzNDu gettimeを使うかthreadで別処理にする
783デフォルトの名無しさん
2021/02/28(日) 13:15:04.71ID:rSDXD4Hw Aを内包する大ループ作るだけでよくね
正攻法はthreadでいいと思うが
正攻法はthreadでいいと思うが
784デフォルトの名無しさん
2021/02/28(日) 17:45:14.82ID:zlvqXFLj ありがとうございます。早速試してみます。
785デフォルトの名無しさん
2021/03/02(火) 13:39:10.84ID:JZpUb5F1 難しく考えすぎなのでは?
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
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
786デフォルトの名無しさん
2021/03/02(火) 14:30:33.02ID:mCqWIBDx 782:gettimeかthread
785:考えすぎでは?gettime使え
785:考えすぎでは?gettime使え
787デフォルトの名無しさん
2021/03/02(火) 18:36:17.07ID:JZpUb5F1 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
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
788デフォルトの名無しさん
2021/03/03(水) 00:31:34.71ID:UoOyY0IM789デフォルトの名無しさん
2021/03/03(水) 00:39:48.25ID:eEFRPXrG >>788
BTNって非同期なの?
BTNって非同期なの?
790デフォルトの名無しさん
2021/03/03(水) 20:36:38.79ID:yubedTmO BTN(LEFT,CLICK,(G_IMG_X+5),(G_IMG_Y+5),600000) とすると、クリックするまでループ処理が止まる
止まるとA動作のループが動かない
止まるとA動作のループが動かない
791デフォルトの名無しさん
2021/03/03(水) 20:58:42.86ID:gkb1jlIk MSがなにやら簡単ツールを提供するようだ
自動化が簡単になる
自動化が簡単になる
792デフォルトの名無しさん
2021/03/03(水) 22:02:40.43ID:g0RIT2ce ソースは?
UWSCみたいには使えないと思うが・・・
UWSCみたいには使えないと思うが・・・
793デフォルトの名無しさん
2021/03/03(水) 22:08:57.07ID:gkb1jlIk794デフォルトの名無しさん
2021/03/03(水) 22:20:08.14ID:g0RIT2ce コードを書かずに〜と書いてあることから凝った設定はできないとも読めるよ?
まあ仮に自動化できたとしてもUWSCと同等のことが出来なければ用が無い
まあ仮に自動化できたとしてもUWSCと同等のことが出来なければ用が無い
795デフォルトの名無しさん
2021/03/03(水) 22:25:44.81ID:V8Bi7ith これとUWSCを組み合わせて使えば自動化が簡単にできるようになるんじゃないかと期待してみる
796デフォルトの名無しさん
2021/03/03(水) 22:41:06.95ID:W0isZ3pe ブラウザの読み込み完了になるまで待つ機能があるかどうかですお。
797デフォルトの名無しさん
2021/03/04(木) 08:23:11.29ID:RtzC2UYg そりゃ自動化ツールなんだから
クリックした結果を見る前に次の動作するわけなかろうw
艦これの自動化くらいすぐ出来そう
クリックした結果を見る前に次の動作するわけなかろうw
艦これの自動化くらいすぐ出来そう
798デフォルトの名無しさん
2021/03/04(木) 14:16:32.07ID:U4nDCxwI //IE以外で読み込み完了まで待機が出来ないとか何とか・・・?
DOSCMD("start microsoft-edge:http://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
DOSCMD("start microsoft-edge:http://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
799デフォルトの名無しさん
2021/03/08(月) 11:11:54.09ID:r1yNd/Vf >>793の続きが紹介されていた
windows10homeの場合は使えない機能があるとのことProを使うのは当たり前なんで気にしたことなかったが。
homeの人はproへグレードアップしてほしい。約1万5000円支払えば可能だから当たり前にやっておこう。
また、ブラウザの自動操作は拡張機能が必要とのことだ。
windows10homeの場合は使えない機能があるとのことProを使うのは当たり前なんで気にしたことなかったが。
homeの人はproへグレードアップしてほしい。約1万5000円支払えば可能だから当たり前にやっておこう。
また、ブラウザの自動操作は拡張機能が必要とのことだ。
800デフォルトの名無しさん
2021/03/08(月) 13:19:35.29ID:p+9eWZvC やるかボケ
801デフォルトの名無しさん
2021/03/08(月) 13:36:33.15ID:r1yNd/Vf あっそうですか
でしたら使えない機能は諦めていただく他はないですね
でしたら使えない機能は諦めていただく他はないですね
802デフォルトの名無しさん
2021/03/08(月) 13:54:11.38ID:1eIB7vrT マイクソからも提供されてるのか
試してみるかな
試してみるかな
803デフォルトの名無しさん
2021/03/12(金) 15:13:37.21ID:ZRLAvOku printで表示させる文字の位置を設定する方法はありますか?
サイズも設定できるとなお良いです
サイズも設定できるとなお良いです
804デフォルトの名無しさん
2021/03/13(土) 13:10:54.59ID:cA/ebhRB //面倒くさいやり方もあるが、無駄な労力なのでLOGPRINTを使うと良い
//なぜかx座標が7ピクセルずれるから指定座標から引く事
x = 500;y= 500
FUKIDASI("表示位置テスト1",x,y)
LOGPRINT(TRUE,x-7,y,250,100)
PRINT "表示位置サイズ変更テスト2"
sleep(10)
//なぜかx座標が7ピクセルずれるから指定座標から引く事
x = 500;y= 500
FUKIDASI("表示位置テスト1",x,y)
LOGPRINT(TRUE,x-7,y,250,100)
PRINT "表示位置サイズ変更テスト2"
sleep(10)
805デフォルトの名無しさん
2021/03/14(日) 19:17:10.26ID:MdoUOPO+ 凄い初心な質問ですんません。
ID = EXEC("C:\Program Files (x86)\cameeze\cameeze.exe")
SLEEP(1.5)
ACW(GETID("cameeze","TfrmMain.UnicodeClass"),1583,450,460,300,0)
↓
5回繰り返し(座標だけ違う)
こんな感じで作ったのですが、UWSCから設定ファイルを実行すると動くのですが、
設定ファイルから実行すると失敗してしまいます。(アクティブなウィンドウが切り替わらずにパッパッと動いてる)
重複起動していて同名なので、名前の後に(1)みたいな風に付ける方法はありませんでしょうか…
ID = EXEC("C:\Program Files (x86)\cameeze\cameeze.exe")
SLEEP(1.5)
ACW(GETID("cameeze","TfrmMain.UnicodeClass"),1583,450,460,300,0)
↓
5回繰り返し(座標だけ違う)
こんな感じで作ったのですが、UWSCから設定ファイルを実行すると動くのですが、
設定ファイルから実行すると失敗してしまいます。(アクティブなウィンドウが切り替わらずにパッパッと動いてる)
重複起動していて同名なので、名前の後に(1)みたいな風に付ける方法はありませんでしょうか…
806デフォルトの名無しさん
2021/03/14(日) 19:20:27.96ID:MdoUOPO+ あれ、なんでだろ書き込めない・・・
807デフォルトの名無しさん
2021/03/14(日) 19:25:57.43ID:MdoUOPO+ くっそ初心者ですんません。
ID = EXEC("あああ")
SLEEP(1.5)
ACW(GETID("あああ","TfrmMain.UnicodeClass"),1583,450,330,460,0)
↓
座標変えて5回繰り返し
こんな感じで同じソフトを多重起動させて並べようとしたのですが、失敗してしまいます。
ウィンドウタイトルが同じで同じウィンドウを色々な座標に持っていこうとしてるだけみたいな感じなのですが
ソフト名の後ろに(1)みたいなのを付けたりする方法はありませんでしょうか…
(なぜか書けなかったのであああにしてます)
ID = EXEC("あああ")
SLEEP(1.5)
ACW(GETID("あああ","TfrmMain.UnicodeClass"),1583,450,330,460,0)
↓
座標変えて5回繰り返し
こんな感じで同じソフトを多重起動させて並べようとしたのですが、失敗してしまいます。
ウィンドウタイトルが同じで同じウィンドウを色々な座標に持っていこうとしてるだけみたいな感じなのですが
ソフト名の後ろに(1)みたいなのを付けたりする方法はありませんでしょうか…
(なぜか書けなかったのであああにしてます)
808デフォルトの名無しさん
2021/03/14(日) 20:13:27.68ID:E6ui2GaX 例えばこれで多重起動できる
ID = EXEC("notepad.exe")
ACW(ID,1583,450,330,460,0)
ID2 = EXEC("notepad.exe")
ACW(ID2,1583,450,330,460,0)
ID = EXEC("notepad.exe")
ACW(ID,1583,450,330,460,0)
ID2 = EXEC("notepad.exe")
ACW(ID2,1583,450,330,460,0)
809デフォルトの名無しさん
2021/03/14(日) 22:20:18.27ID:BQ6dfRIE810デフォルトの名無しさん
2021/03/14(日) 22:32:16.30ID:MdoUOPO+ >>809
ありがとう!「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」みたいな感じですか?
でもそのソフト起動遅いんです・・・。
続けて書いたら最初に立ち上がる時に表示されるロゴみたいなのが指定の位置に移動するだけで
肝心のウィンドウは前回の終了位置にいってしまうんです…
ありがとう!「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」みたいな感じですか?
でもそのソフト起動遅いんです・・・。
続けて書いたら最初に立ち上がる時に表示されるロゴみたいなのが指定の位置に移動するだけで
肝心のウィンドウは前回の終了位置にいってしまうんです…
811デフォルトの名無しさん
2021/03/15(月) 00:00:30.92ID:+CyRHPpu //>「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)
//変数の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)
812デフォルトの名無しさん
2021/03/15(月) 00:36:16.10ID:/ZCKQNsi 複数個起動できないソフトなのでは?
813デフォルトの名無しさん
2021/03/15(月) 01:08:44.19ID:v5Yi3qmH ああ!そういうことか!(´・ω・`)意味が分かったかもしれない!!
ID = EXEC("あああ") ←この『ID』=という部分が自分で決めれるんすね!?
例えばaaa = EXEC("あああ")と書いて次の行に
ACW(aaa,1583,450,330,460,0)とすると
録画機能みたいなのを利用してたのでIDと書くルールなのかと思ってました…
>>812
いえ、複数個起動はできるソフトで、一応動くには動くのですが
設定ファイルから実行するとアクティブなウインドウが切り替わらず一つのウィンドウだけが座標を行ったり来たりする感じでした
ID = EXEC("あああ") ←この『ID』=という部分が自分で決めれるんすね!?
例えばaaa = EXEC("あああ")と書いて次の行に
ACW(aaa,1583,450,330,460,0)とすると
録画機能みたいなのを利用してたのでIDと書くルールなのかと思ってました…
>>812
いえ、複数個起動はできるソフトで、一応動くには動くのですが
設定ファイルから実行するとアクティブなウインドウが切り替わらず一つのウィンドウだけが座標を行ったり来たりする感じでした
814デフォルトの名無しさん
2021/03/15(月) 01:09:40.14ID:v5Yi3qmH わ
815デフォルトの名無しさん
2021/03/15(月) 09:32:47.13ID:+CyRHPpu なるほどなぁ
そのレベルからの解説でも需要があるのか
UWSCの需要はまだ枯れてないか
そのレベルからの解説でも需要があるのか
UWSCの需要はまだ枯れてないか
816デフォルトの名無しさん
2021/03/17(水) 06:59:58.16ID:TjD9TcDJ817デフォルトの名無しさん
2021/03/17(水) 07:01:40.55ID:TjD9TcDJ818807
2021/03/17(水) 16:54:27.51ID:dsWxXXVG 皆のお陰様でちょとだけ理解ができてきました
あわよくばもう一点だけ教えて欲しいのです
>>808さんが教えてくれた方法は何故か上手く動いてくれませんでした
起動の遅れ?とかが関係あるのかとSLEEPを挟んでみたりしたのですがうまくいかず
でもそのまんまコピペするとメモ帳はその様に動きました。
そこで>>811さんの教えて貰った様に起動させた後にGETIDってので戻り値?というのをID1〜6に指定
これで思惑通り動きました!でも解せないというか理解できてないんです。
ID1 = GETID("電卓") ってのは「電卓っていうウィンドウIDを返せ」「それをID1と仮名する!」という意味であってますか?
だとすると電卓が複数個起動してたらどれのウィンドウIDを戻すのか分からなくなる気がするのは気の所為でしょうか
それとも順番に書いてるからアクティブなウィンドウから値を引っ張ってきてるのでしょうか?
1・自動で起動させてアプリを並べる。
2・別の設定ファイルでウィンドウにあるプルダウンメニューから自動で選ぶ
をやりたくて、1はできたのですが2を行う場合、GETIDではできませんでした。
初心者のクセに基礎も分からず意味不明なこと言ってるかもしれませんが、最後にしますのでお願いします…
あわよくばもう一点だけ教えて欲しいのです
>>808さんが教えてくれた方法は何故か上手く動いてくれませんでした
起動の遅れ?とかが関係あるのかとSLEEPを挟んでみたりしたのですがうまくいかず
でもそのまんまコピペするとメモ帳はその様に動きました。
そこで>>811さんの教えて貰った様に起動させた後にGETIDってので戻り値?というのをID1〜6に指定
これで思惑通り動きました!でも解せないというか理解できてないんです。
ID1 = GETID("電卓") ってのは「電卓っていうウィンドウIDを返せ」「それをID1と仮名する!」という意味であってますか?
だとすると電卓が複数個起動してたらどれのウィンドウIDを戻すのか分からなくなる気がするのは気の所為でしょうか
それとも順番に書いてるからアクティブなウィンドウから値を引っ張ってきてるのでしょうか?
1・自動で起動させてアプリを並べる。
2・別の設定ファイルでウィンドウにあるプルダウンメニューから自動で選ぶ
をやりたくて、1はできたのですが2を行う場合、GETIDではできませんでした。
初心者のクセに基礎も分からず意味不明なこと言ってるかもしれませんが、最後にしますのでお願いします…
819デフォルトの名無しさん
2021/03/17(水) 19:42:27.72ID:0BuFiOnf 最初から言ってる設定ファイルがなんなのか分からん
どっかて買ったマクロ集かなんか?
まあ他の部分は推測と合っている
どっかて買ったマクロ集かなんか?
まあ他の部分は推測と合っている
820デフォルトの名無しさん
2021/03/17(水) 19:56:01.39ID:+PPxZeIs 省略しないで書くなら、
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でも出来るけどめんどい
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でも出来るけどめんどい
821デフォルトの名無しさん
2021/03/17(水) 20:02:51.61ID:dsWxXXVG >>819
すんません、設定ファイルじゃなくてuwsファイルでした。
ということは、同名アプリ起動後に別のuwsファイルでIDを取得するには
マウスで座標指定してクリック→ウィンドウをアクティブに→ * = GETIDみたいなのを書いてやると良いわけですね
ありがとうございます挑戦してみます
すんません、設定ファイルじゃなくてuwsファイルでした。
ということは、同名アプリ起動後に別のuwsファイルでIDを取得するには
マウスで座標指定してクリック→ウィンドウをアクティブに→ * = GETIDみたいなのを書いてやると良いわけですね
ありがとうございます挑戦してみます
822デフォルトの名無しさん
2021/03/17(水) 20:12:09.19ID:dsWxXXVG823デフォルトの名無しさん
2021/03/17(水) 21:35:38.19ID:oFq5eIyC プルダウンメニューから選ぶというのがよくわからない
824デフォルトの名無しさん
2021/03/18(木) 07:40:23.96ID:8urs7GkO >>823
防犯カメラ複数台登録して視聴ソフトを起動させると
すべて1台目のIPが指定されてしまうのです。
なのでプルダウン(ドロップダウン)から機器登録されている
IPアドレスを選択してあげないといけないんです
防犯カメラ複数台登録して視聴ソフトを起動させると
すべて1台目のIPが指定されてしまうのです。
なのでプルダウン(ドロップダウン)から機器登録されている
IPアドレスを選択してあげないといけないんです
825デフォルトの名無しさん
2021/03/18(木) 08:15:40.32ID:YmFQF9g2 全部を一つでは出来ないよ
所詮はアプリじゃなくてスクリプトだからさ
やろうと思えば出来るけど、状態を保持してる何かするのは難しい
今上がってるもので言うと
複数の監視カメラの視聴アプリとやらを一括で起動するのは特に問題ないよね
同時に整列させるのはちょっとハードル高いから考え方変えて、同じアプリを後から整列させるなら多少は簡単にできる
(ただ、uwscでやる必要性はあまり感じない)
プルダウンから自動で選ぶはまだちょっと意味が分からない
リストからカメラ指定して起動したいってこと?
それとも起動済みの視聴アプリをリストにして、それを選んで何か操作したいということ?
後者はアプリがタイトルバーに何か色つけてくれてればやりようあるけど、そうじゃないなら難しいよ
所詮はアプリじゃなくてスクリプトだからさ
やろうと思えば出来るけど、状態を保持してる何かするのは難しい
今上がってるもので言うと
複数の監視カメラの視聴アプリとやらを一括で起動するのは特に問題ないよね
同時に整列させるのはちょっとハードル高いから考え方変えて、同じアプリを後から整列させるなら多少は簡単にできる
(ただ、uwscでやる必要性はあまり感じない)
プルダウンから自動で選ぶはまだちょっと意味が分からない
リストからカメラ指定して起動したいってこと?
それとも起動済みの視聴アプリをリストにして、それを選んで何か操作したいということ?
後者はアプリがタイトルバーに何か色つけてくれてればやりようあるけど、そうじゃないなら難しいよ
826デフォルトの名無しさん
2021/03/18(木) 09:52:39.16ID:JPJY5VhO たとえば一つの例として「Fit Win」というアプリがあって
指定したアプリを整列させるだけならこういうアプリもある
プルダウンから選ぶは座標クリックしていく原始的なやり方しかないだろうね
整列して同じ座標へウィンドウを固定させたら比較的簡単にできるし
視聴ソフトはあまり詳しくないので調べてみたら「smart viewer」というフリーのソフトが複数カメラ、複数画面に対応してるようだけど
こういうソフトじゃないと駄目なの?機器が対応してないと駄目だろうけどLAN接続するタイプなら割と対応してるっぽいが?
このソフトを採用している警備会社があるようだから悪くないと思うけどな
指定したアプリを整列させるだけならこういうアプリもある
プルダウンから選ぶは座標クリックしていく原始的なやり方しかないだろうね
整列して同じ座標へウィンドウを固定させたら比較的簡単にできるし
視聴ソフトはあまり詳しくないので調べてみたら「smart viewer」というフリーのソフトが複数カメラ、複数画面に対応してるようだけど
こういうソフトじゃないと駄目なの?機器が対応してないと駄目だろうけどLAN接続するタイプなら割と対応してるっぽいが?
このソフトを採用している警備会社があるようだから悪くないと思うけどな
827デフォルトの名無しさん
2021/03/18(木) 10:40:06.48ID:Y5jTQtWf ネットワークドライブのuwsファイルを認識しないのですが、みなさんの環境でもそうですか?
\\ORE-PC\UWS\hoge.uws をダブルクリックすると問題なく起動しますが、
\\ORE-PCをZドライブに割り当てて、
Z:\UWS\hoge.uwsをダブルクリックするとFILE NOT FOUNDってでる。
右クリ→メモ帳だと問題なく開けるので、UWSCの仕様なんでしょうかね・・
\\ORE-PC\UWS\hoge.uws をダブルクリックすると問題なく起動しますが、
\\ORE-PCをZドライブに割り当てて、
Z:\UWS\hoge.uwsをダブルクリックするとFILE NOT FOUNDってでる。
右クリ→メモ帳だと問題なく開けるので、UWSCの仕様なんでしょうかね・・
828デフォルトの名無しさん
2021/03/18(木) 11:08:31.02ID:JPJY5VhO ダブルクリックして起動?
ランチャーとかUWSCから起動させるのは駄目?
ネットワークドライブを割り当てるとかはやってないのでわかりませんね
ランチャーとかUWSCから起動させるのは駄目?
ネットワークドライブを割り当てるとかはやってないのでわかりませんね
829827
2021/03/18(木) 12:13:19.45ID:Y5jTQtWf windowsのショートカットでも、ランチャーに登録してもダメですね。
だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ
だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ
830デフォルトの名無しさん
2021/03/18(木) 12:38:28.87ID:Sp8r4MHz コマンドプロンプトで実行できるなら、hoge.uwsがあるフォルダにUWSC.exeを入れて
BATファイルに
UWSC.exe hoge.uws
と書いてBATファイルで実行する手もある
BATファイルに
UWSC.exe hoge.uws
と書いてBATファイルで実行する手もある
831827
2021/03/18(木) 13:45:17.72ID:Y5jTQtWf832デフォルトの名無しさん
2021/03/18(木) 14:05:23.77ID:Y5jTQtWf >だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ
改めてやったら、そもそもUWSC本体→開くでZドライブが見えない。
なんで開けたつもりになったんだろう・・謎
ショートカットは見えるので叩くとやっぱFILE not found
改めてやったら、そもそもUWSC本体→開くでZドライブが見えない。
なんで開けたつもりになったんだろう・・謎
ショートカットは見えるので叩くとやっぱFILE not found
833デフォルトの名無しさん
2021/03/18(木) 14:25:56.67ID:Sp8r4MHz EXEファイルにするか、iexpress.exeでパッケージ化するか
https://wikiwiki.jp/gutchie/%E8%87%AA%E5%8B%95%E5%8C%96%E3%83%84%E3%83%BC%E3%83%AB/UWSC#y1bf8470
https://wikiwiki.jp/gutchie/%E8%87%AA%E5%8B%95%E5%8C%96%E3%83%84%E3%83%BC%E3%83%AB/UWSC#y1bf8470
834デフォルトの名無しさん
2021/03/24(水) 22:16:20.39ID:SjAM6MJ0 子ウィンドウを取得して操作したいのですがなかなか上手くいきません
ID=GETID("親ウインドウのタイトル")
idLength=GETALLWIN(ID)
FOR i = 0 TO idLength-1
PRINT STATUS(ALL_WIN_ID[i],ST_TITLE)
NEXT
↑を実行したところ、返ってきたのは子ウィンドウではなく
子ウィンドウ内の要素でした。(ボタン、チェックボックス、ラジオボタン)
ID=GETID("親タイトル",,,"子タイトル")
PRINT
↑は-1になります
やり方間違ってますか
ID=GETID("親ウインドウのタイトル")
idLength=GETALLWIN(ID)
FOR i = 0 TO idLength-1
PRINT STATUS(ALL_WIN_ID[i],ST_TITLE)
NEXT
↑を実行したところ、返ってきたのは子ウィンドウではなく
子ウィンドウ内の要素でした。(ボタン、チェックボックス、ラジオボタン)
ID=GETID("親タイトル",,,"子タイトル")
↑は-1になります
やり方間違ってますか
835デフォルトの名無しさん
2021/03/24(水) 23:30:49.98ID:ffF9L6R4 //ウィンドウ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")
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")
836デフォルトの名無しさん
2021/03/25(木) 00:14:40.63ID:dnI+vm3S >>835
実行してみると
親ウィンドウのタイトルが、ウインドウの数+1表示されました
という事は自分が子ウインドウだと思っていたものは全て親ウインドウという事かな?
今日は遅いのでまた明日やってみます
ありがとうございました
実行してみると
親ウィンドウのタイトルが、ウインドウの数+1表示されました
という事は自分が子ウインドウだと思っていたものは全て親ウインドウという事かな?
今日は遅いのでまた明日やってみます
ありがとうございました
837デフォルトの名無しさん
2021/04/09(金) 09:20:46.01ID:vJdMFfhi Windowsのユーザーを切り替えて、各ユーザーごとにマクロを実施していきたいのだけど、ユーザー切り替えはUWSCでは難しいですか?
838デフォルトの名無しさん
2021/04/09(金) 09:27:52.43ID:Aph6z+sk 何したいか分かんないけどユーザー指定して操作対象のアプリ起動するんじゃダメなん?
839デフォルトの名無しさん
2021/04/09(金) 11:17:30.70ID:RfO7RRDz UWSCの範囲を超えるこえど
動かしたいユーザー列挙しといて
レジストリに自動ログオンと自動実行の仕掛け作っとけばいけそう
再起動→次のユーザーで自動ログオンして自動実行という流れで
動かしたいユーザー列挙しといて
レジストリに自動ログオンと自動実行の仕掛け作っとけばいけそう
再起動→次のユーザーで自動ログオンして自動実行という流れで
840デフォルトの名無しさん
2021/04/09(金) 11:58:31.99ID:AGu16ZxP ユーザー分の台数を用意すればいい
10ユーザーいるなら10台用意するとかね
10ユーザーいるなら10台用意するとかね
841デフォルトの名無しさん
2021/04/13(火) 14:47:03.51ID:IqZsL8m5 神様ちょっと助けておくれ・・・
ブラウザのスクロールバーのボタン3回クリックの1セットを、
1セット×回数で10回行いたい(=最後は30回クリック)
forでかけ算すればいいんじゃね?とひらめいたが動くわけがなかった。
ブラウザのスクロールバーのボタン3回クリックの1セットを、
1セット×回数で10回行いたい(=最後は30回クリック)
forでかけ算すればいいんじゃね?とひらめいたが動くわけがなかった。
842デフォルトの名無しさん
2021/04/13(火) 15:08:40.06ID:IqZsL8m5 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の書き方にモヤモヤしているが・・・とりあえずエラーは出ない
永久にクリックし続けるだけで。
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の書き方にモヤモヤしているが・・・とりあえずエラーは出ない
永久にクリックし続けるだけで。
843デフォルトの名無しさん
2021/04/13(火) 15:14:05.98ID:C7npRUyM ブラウザの右下隅に下向きのボタンがあるが、それをクリックするという事かな?
844デフォルトの名無しさん
2021/04/13(火) 15:16:34.28ID:IqZsL8m5 そうです。
ブラウザ上での作業を自動化したくて。
ボタンにかんしては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で止まって欲しいのに・・・)
ブラウザ上での作業を自動化したくて。
ボタンにかんしては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で止まって欲しいのに・・・)
845デフォルトの名無しさん
2021/04/13(火) 16:03:51.33ID:M7vT5OZZ c > c
ワロタ
この不等式がおかしいと思わないってヤバない?
プログラムじゃなくて数学、いや算数レベルやん
ワロタ
この不等式がおかしいと思わないってヤバない?
プログラムじゃなくて数学、いや算数レベルやん
846デフォルトの名無しさん
2021/04/13(火) 16:11:32.97ID:C7npRUyM //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("クリック完了")
//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("クリック完了")
847デフォルトの名無しさん
2021/04/13(火) 16:36:03.26ID:IqZsL8m5 いろいろ試してる間にごちゃごちゃしてきたのですみませんね;
UWSCではforしか使ったことがないもので
>>846
入れ子でいいはずですよね・・・(同じコードだ・・・)
もう一回ためしてみます。
ありがとう。
UWSCではforしか使ったことがないもので
>>846
入れ子でいいはずですよね・・・(同じコードだ・・・)
もう一回ためしてみます。
ありがとう。
848デフォルトの名無しさん
2021/04/16(金) 14:51:43.21ID:uD9tfUyH プログラムファイルから消した文言が表示されエラーになってしまいます
IFB CHKIMG ("C〜.BMP")を("C〜.PNG")に書き換えしたのですが、NOT FOUND 〜BMP となります
(appdataなど削除し)ソフトの入れ直しや、違う名前のプログラムファイルを作成などしましたが改善せず。terapadを使用して書いてます
ご教示お願いします
IFB CHKIMG ("C〜.BMP")を("C〜.PNG")に書き換えしたのですが、NOT FOUND 〜BMP となります
(appdataなど削除し)ソフトの入れ直しや、違う名前のプログラムファイルを作成などしましたが改善せず。terapadを使用して書いてます
ご教示お願いします
849デフォルトの名無しさん
2021/04/16(金) 14:53:20.85ID:hdR99Jx3 違うファイルを読み込んでいる
850デフォルトの名無しさん
2021/04/16(金) 15:17:51.55ID:jul+q2bh 実行してるファイルと編集してるファイルが違ってたとかよくある
何でこのバグ消えねぇんだ?と思ってよく見たら違ってたと
何でこのバグ消えねぇんだ?と思ってよく見たら違ってたと
851デフォルトの名無しさん
2021/04/16(金) 21:43:26.23ID:Qutb4gNt CHKIMGはBMPしか使えないからそのエラーになるだけで消した文が影響している訳ではない
BMPに戻せ
BMPに戻せ
852デフォルトの名無しさん
2021/04/16(金) 21:59:57.64ID:9Ra8nUSr ちゃんとエラーメッセージ読むタイプと読まないタイプの違いが出たな
853デフォルトの名無しさん
2021/04/16(金) 23:08:42.23ID:mtyX36ii おお!出来ました!
皆様ありがとうございます
皆様ありがとうございます
854デフォルトの名無しさん
2021/04/23(金) 04:45:57.46ID:GWiJhS53 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文の中の処理回数を増やす方法をご存じでしたら、教えていただけたら幸いです。
よろしくお願いします。
下記の処理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文の中の処理回数を増やす方法をご存じでしたら、教えていただけたら幸いです。
よろしくお願いします。
855デフォルトの名無しさん
2021/04/23(金) 05:45:45.21ID:2JaREPAx 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
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
856デフォルトの名無しさん
2021/04/23(金) 05:56:06.69ID:kWPc6e52 やるじゃん!
857デフォルトの名無しさん
2021/04/23(金) 06:00:49.79ID:GWiJhS53858デフォルトの名無しさん
2021/04/23(金) 12:41:11.27ID:Fs/FdOQM いや別に代入はいらんけど…
859デフォルトの名無しさん
2021/04/23(金) 13:40:06.30ID:gAgD293m 動けばいいんだよ
猿相手に説明してもしゃーない
猿相手に説明してもしゃーない
860デフォルトの名無しさん
2021/04/23(金) 14:54:53.39ID:zpT46eZ/ キーキー喚いて他人に噛み付くだけの猿は本当にしょうがないよな
861デフォルトの名無しさん
2021/04/23(金) 15:13:24.53ID:gAgD293m >>1読んでないのかな
862デフォルトの名無しさん
2021/04/23(金) 15:35:59.73ID:Qd1iaOGD 無能な猿はすっこんでろって
863デフォルトの名無しさん
2021/04/23(金) 18:49:02.98ID:k2R/iVu9 サルモンキーウッキー
864デフォルトの名無しさん
2021/04/30(金) 21:19:57.52ID:gWvSQQ0Q メモ帳上だと正常に機能するけど、動かしたいソフト上だと特定のキー(十字キーとかシフトキー)だけ受け付けないんだけどなにかわかるかな?
記録は出来て、中身を見るとちゃんとキーも入ってるけど再生時に特定のキーが無視されちゃう
記録は出来て、中身を見るとちゃんとキーも入ってるけど再生時に特定のキーが無視されちゃう
865デフォルトの名無しさん
2021/05/01(土) 02:52:48.63ID:MA8kI4AW まず「動かしたいソフト」の名前を書け
866デフォルトの名無しさん
2021/05/14(金) 14:13:35.87ID:2RtqhEo0 画像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とかになってました)
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とかになってました)
867デフォルトの名無しさん
2021/05/14(金) 15:09:08.52ID:K8K4yQFj getdirでファイル一覧取ってきてfor-in-nextで画像ファイルの分だけループ回せばいいと思う
868デフォルトの名無しさん
2021/05/14(金) 16:43:30.17ID:iQwZsiAA 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
//画像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
869デフォルトの名無しさん
2021/05/14(金) 17:02:47.72ID:2RtqhEo0 >>867-868
ありがとうございます、ですがすいません
文にしたときにわかりづらかったので変えていたのですが、
実際の画像ファイルはファイル毎に名前を変えていて連番ではなく、画像を認識する場所もそれぞれ異なります
ありがとうございます、ですがすいません
文にしたときにわかりづらかったので変えていたのですが、
実際の画像ファイルはファイル毎に名前を変えていて連番ではなく、画像を認識する場所もそれぞれ異なります
870デフォルトの名無しさん
2021/05/14(金) 17:37:15.98ID:iQwZsiAA //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
//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
871デフォルトの名無しさん
2021/05/14(金) 22:43:48.66ID:6hlMfvtI >>869
>画像を認識する場所もそれぞれ異なります
ってこういうことかな
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
>画像を認識する場所もそれぞれ異なります
ってこういうことかな
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
872デフォルトの名無しさん
2021/05/15(土) 02:20:59.88ID:d0kD+s8i やっぱchkimgxで組んだら?
わざわざ配列でチェック座標管理しなくて済むし
わざわざ配列でチェック座標管理しなくて済むし
873デフォルトの名無しさん
2021/05/15(土) 15:01:39.06ID:M0a+Mlf6 明確に座標が違うなら配列作ってforで回す方がいいと思うがね
874デフォルトの名無しさん
2021/05/18(火) 01:52:43.80ID:IPcsF0ko すいません、返事が遅れました
>>870-871の方法でいじりながら様子を見てみます、ありがとうございます
しかし元々の記述よりだいぶ複雑になるんですね…
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は常に表示されているわけではないので困ってます
なにか良い解決策はないでしょうか
>>870-871の方法でいじりながら様子を見てみます、ありがとうございます
しかし元々の記述よりだいぶ複雑になるんですね…
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は常に表示されているわけではないので困ってます
なにか良い解決策はないでしょうか
875デフォルトの名無しさん
2021/05/18(火) 06:01:50.96ID:UDGz656x ちょっと話しは逸れるけど
そもそもいちいちcallする必要あるのかな
関数化しちゃいかんの?
そもそもいちいちcallする必要あるのかな
関数化しちゃいかんの?
876デフォルトの名無しさん
2021/05/18(火) 10:17:39.32ID:wQ5og2t5 定期的に出てくるけどCALLを関数代わりにしてる奴は頭おかしいからスルーして大丈夫
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】WBC世界バンタム級王座決定戦 井上拓真判定勝利! 那須川天心、初黒星 [牛丼★]
- 【速報】盗難車ひき逃げで歩行者ら12人死傷 逃走した“運転手”の37歳男を逮捕 東京・足立区 ★3 [Ailuropoda melanoleuca★]
- WBC世界バンタム級王座決定戦 井上拓真が3-0の判定勝利で世界王座に返り咲き! 無敗の那須川天心に初黒星つけ完全復活!★2 [牛丼★]
- 【速報】盗難車ひき逃げで歩行者ら12人死傷 逃走した“運転手”の37歳男を逮捕 東京・足立区 ★4 [Ailuropoda melanoleuca★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も [ぐれ★]
- 〈台湾からも批判の声〉完全に詰んだ高市首相「存立危機事態」発言「愛国心はあっても外交能力がない」 [バイト歴50年★]
- 【実況】WBC世界バンタム級王座決定戦 那須川天心vs井上拓真 2
- ぶんぶんぶーん!押忍!hololive DEV_IS ReGLOSSの番長!轟はじめ!🐧⚡🏡
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ165
- 那須川天心敗北wwwwwwwwwwwwwwwwwwww [802034645]
- 正直、中国民の反日感情より、国内の反中感情の方がヤバくないか?ヤフコメ、X、TikTok、YouTube…どこ見てもヘイトが溢れてる [838847604]
- 【速報】足立ひき逃げ犯、精神病持ちだった [329271814]
