気づいたら何かしら毎日イジってるAutoHotkey。
簡単なアプリを作るならこれで充分でしょ。
一長一短あるけど。
どうにも動きが不可解で困ったことになった。
それがタイトルにある通り「ControlClick」。
(ウィンドウをアクティブにした上で)座標を指定して擬似的にマウスクリックを行うコマンドだ。
ControlClick [,Control-or-Pos, WinTitle, WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText]
やりたい事は指定したウィンドウ内の座標をクリックするというもの。
早速試してみよう。
ウィンドウのタイトルとか座標はAutoHotkeyのWindow Spyで取れる。
windowTitle1 := "test - エクスプローラー"
WinActivate, %windowTitle1%
ControlClick, X100 Y170, %windowTitle1%,, LEFT, 1, Pos
こんな感じか。
エクスプローラーでtestというフォルダを開いている状態。
実行すると指定ウィンドウをアクティブにして指定した座標を左ボタンで1回クリックする。
ところが動かないw
クリックを指定した場所(ツリー表示のフォルダ)が一瞬選択されたかのようになるけど
testフォルダを開いたまま。
何回かやっているとたまに正常に動く。
やめてほしいんですけどその動きw
ControlClick, X100 Y170, %windowTitle1%,, LEFT, 2, Pos
2回クリックするようにしてみたら、正常動作確率が上がった。
でも美しくないし根本解決していない。
ドキュメントを見たり試したりしていたら
ControlClick, X100 Y170, %windowTitle1%,, LEFT, 1, Pos NA
これで上手くいった。
NAってウィンドウをアクティブ化させずにクリックを発生させるオプション。
エクスプローラーはWinActivateしなくても動いた。