• 締切済み

UWSC(マウス自動化ソフト)についての質問です。

UWSCを使って、キーエンスさんの「LK-Navigator」というソフトを起動し、レーザー変位計で変位量を計測し始める直前までのルーティン作業を自動化させようとしています。 ネットの活用事例 [btn()関数を相対座標指定で使う] →http://nem.symphonic-net.com/uwsct/fcuc_jirei.htm を拝見すると、下記(A)の様なコマンドがありました。 ---(A)--ここから------------------------ doscmd("<#dbl>C:\WINDOWS\system32\rundll32.exe<#dbl> C:\WINDOWS\system32\shell32.dll,Control_RunDLL <#dbl>C:\WINDOWS\system32\timedate.cpl<#dbl>,日付と時刻",TRUE) id=getid("日付と時刻のプロパティ","#32770") sleep(1) btn(LEFT,CLICK,status(id,ST_CLX)+1,status(id,ST_CLY)+1) ---(A)--ここまで------------------------ この(A)をUWSCで実行すると、 status(id,ST_CLX)+1,status(id,ST_CLY)+1 ですので、図の1の位置にカーソルが移動してくれます。 次に、上述status(id,ST_CLX)+1, status(id,ST_CLY)+1 を status(id,ST_CLX)+194,status(id,ST_CLY)+15 ように書き換えますと、 図の2の位置にカーソルが移動してくれます。 そこで、同じようなコマンドをキーエンスの「LK-Navigator」についても記述しました(下記(B))。 ---(B)--ここから------------------------ doscmd("<#dbl>C:\Program Files\Keyence\LK-Navigator\LK-Navigator.exe<#dbl> ",TRUE) id=getid("起動時に表示する設定内容を選択してください","#32770") sleep(2) btn(LEFT,CLICK,status(id,ST_CLX)+1,status(id,ST_CLY)+1) //コントローラー設定を受信して読み出すダイアログをOKする。 ---(B)--ここまで------------------------ 上述(B)のコマンドで、図の3の位置にカーソルが来るはず!・・・と思ったのですが、 4の位置になってしまいます。 これはどこに誤りがあるのでしょうか? (A)の方ではクライアント領域が読み込まれるのに、(B)では読み込まれないのはなぜでしょうか? 初歩的なことと思いますが、知識不足でわかりません。 「UWSCの落し物部屋」(http://siromasa.xxxxxxxx.jp/)という専門のページで検索を試みましたが、見つけることが出来ませんでした。 初心者に分かり易くご説明いただけるご専門の方にお願いいたします。

みんなの回答

  • nekonynan
  • ベストアンサー率31% (1565/4897)
回答No.1

 今のPCは処理が早すぎてソフトによってはCLICKが早すぎて効かないことあります(ソフトではクリックしていても対象ソフトがCLICKを認識しない)したがって押下する時間を指定して効かせます。 例 BTN(LEFT, CLICK, x, y, )では動かないことがある したがって BTN(LEFT, CLICK, x, y, 450) 又は  BTN(LEFT, ,DOWN, x, y, 100) BTN(LEFT, ,UP, x, y, 100) 感じにしないと動かないソフトが多々にしてある

chy_farm
質問者

お礼

nekonynanさま ご回答ありがとうございました。 id=getid(GET_ACTIVE_WIN) を直前に挿入することで、うまくいくことがわかりました。

chy_farm
質問者

補足

nekonynanさま ご回答ありがとうございました。 ご教示の様に(A)の5行目を記述してみました。↓ btn(LEFT,click,status(id,ST_CLX)+1,status(id,ST_CLY)+1,450) btn(LEFT, ,down,status(id,ST_CLX)+1,status(id,ST_CLY)+1,100) btn(LEFT, ,up,status(id,ST_CLX)+1,status(id,ST_CLY)+1,100) 上記の通り、3通りを試みましたが、 「記述の定義に誤りがある」 と表示されます。 これはどう改善したらよいのでしょうか? お手数ですが、よろしくお願いいたします。

関連するQ&A