プロが教える店舗&オフィスのセキュリティ対策術

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/)という専門のページで検索を試みましたが、見つけることが出来ませんでした。
初心者に分かり易くご説明いただけるご専門の方にお願いいたします。

「UWSC(マウス自動化ソフト)についての」の質問画像

A 回答 (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)

感じにしないと動かないソフトが多々にしてある

この回答への補足

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通りを試みましたが、
「記述の定義に誤りがある」
と表示されます。
これはどう改善したらよいのでしょうか?
お手数ですが、よろしくお願いいたします。

補足日時:2011/09/27 13:39
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/09/28 22:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!