今まではキーボードのキー入力を発生させてランチャ機能や文字列を出力するなどの機能を実装してきました。
今回はキーボードでマウス操作までエミュレートしてしまおうということで、AutoHotKeyを使ったマウス操作についてお伝えしていこうと思います。
マウスを操作する – Click
まずはマウスのクリック操作を記述してみましょう。
今回は変換キー+Cにマウスのクリック操作を割り当ててみたいと思います。
vk1C & C::Click
Click
と引数無しで記述すると、「現在の位置でマウス左クリック」を割り当てることができます。
Clickの引数
Click
にも引数があり、それらの組み合わせによって様々な動作を表現できるようになっています。down/upを利用すればドラッグ&ドロップも表現することが可能です。
珍しく引数の順番は問われず、基本的にどんな順番で書いても同じ動作となりますが、数値に関してはこの順番で記述してください。
- 数値が1つだけの場合はクリック数
- 数値が2つの場合はX,Y座標
- 数値が3つの場合はX,Y,クリック数
コマンド例 | 動作 |
---|---|
Click,2 | 現在位置でダブルクリック |
Click,300,500,0 | 座標X=300,Y=500に移動 (ウインドウ基準 クリックしない) |
Click,300,500 | 座標X=300,Y=500でクリック (ウインドウ基準) |
Click,300,500,2 | 座標X=300,Y=500でダブルクリック (ウインドウ基準) |
Click,300,500,Relative | 座標X=300,Y=500でクリック (現在位置からの相対座標) |
Click,Right | 右クリック |
Click,Right,300,500 | 座標X=300,Y=500で右クリック |
Click,down | 左ボタンを押し下げ |
Click,up | 左ボタンを離す |
Click,WU,1 | 1回ホイールアップ |
Click,WD,10 | 10回ホイールダウン |
ちなみに座標指定には
- 画面の左上端を基準とした絶対座標
- アクティブウインドウの左上端を基準とした相対座標
- マウスポインタの現在位置を基準とした相対座標
大きく分けて以上の3種類があります。
座標指定の基準を設定する
Click
では指定した座標がどこを基準(0,0)にするのかを決めることができます。何も設定しなければアクティブウインドウを基準とした相対座標です。
例えばGoogle Chromeの一番左のタブをクリックする場合にX=200,Y=30あたりを指定しておけば、Chromeがどんなサイズで画面上のどこに表示されていようが、アクティブウインドウの左上端を基準として動作するので、クリックされるのは常に一番左のタブになります。
Chromeがアクティブであればウインドウが中途半場な位置にあっても、
指し示すのは常に一番左のタブ。
引数Relativeで現在位置を基準に
現在位置を基準(0,0)とした座標指定をするのであれば、上の表のようにClick関数の引数に「Relative」を指定しましょう。
ただ現在のポインタの位置を基準として動くので、当然ポインタの位置が変われば移動する先の位置も変化します。そのため「毎回同じ動作をさせる」という意図であればあまり使わないかもしれません。
CoordModeで座標指定の基準を設定する
上記2つはアクティブウインドウやポインタの現在位置からの相対座標ですが、「画面のここ」を絶対座標で指し示したい場合、CoordMode
で指定することもできます。
vk1C & C::
CoordMode, Mouse,Screen
Click,200,30
Return
CoordMode
は2つの引数を取ります。特に第1引数は全て把握しようとするとかなり広い範囲になってしまうので、ここでは「マウス操作で画面上の絶対座標を指定する」という意図であればMouse,Screenと書くということだけ覚えておきましょう。
第1引数
引数 何のコマンドにこの設定を適用するか Mouse MouseGetPos、 Click、MouseMove、MouseClick、MouseClickDrag ToolTip ToolTip Pixel PixelGetColor、PixelSearch、ImageSearch Caret 組み込み変数A_CaretX、A_CaretYの座標 Menu Menu 第2引数
引数 | 座標指定の基準 |
---|---|
Relative (デフォルト) | アクティブウインドウの左上端が基準の相対座標CoordMode, Mouse,, の場合Relative |
Window | 同上 (表記が分かりやすく推奨されている) |
Screen (引数省略時) | 画面の左上端が基準の絶対座標CoordMode, Mouse の場合Screen |
Client | アクティブウインドウから、 タイトルバーやメニュー部分を除いた表示部分が基準の相対座標 |
まとめ – ブログ執筆環境を1キーで立ち上げる
皆さん仮想デスクトップ使ってますか?
僕は最近まで1つのデスクトップだけで作業してましたが、アプリケーションの切り替え作業が頻繁にあると煩わしいので、今は仮想デスクトップを使用して切り替えてます。
基本は1つ目のデスクトップにChrome、2つ目にはTypora、3つ目にVSCodeを立ち上げててますが、問題はマシン起動時です。
- PCを起動してChrome起動
- 仮想デスクトップを切り替えてTyporaを起動
- 再び切り替えてVSCode起動
- 1つ目のデスクトップに戻って、WordPressの記事一覧ページを開く
…全く同じ手順を毎回やるとなると、正直面倒になってきます。
そこで、今回ご紹介したマウス操作でこのブログ執筆環境の立ち上げを自動化してみようと思います。
あくまで現時点での限られたコマンドでも、この程度は自動化できるというサンプルとしてご覧ください。
F13::
Clipboard = https://pouhon.net/wp-admin/ ;クリップボードにWordPressのアドレスを代入
Click,370,1420 ;Chromeのタスクバーアイコンをクリックして起動
sleep,500 ;待機
Send,^#{Right} ;仮想デスクトップを1つ右に切り替え
Click,830,1420 ;Typoraのタスクバーアイコンをクリックして起動
Sleep,2000 ;待機
Send,^#{Left} ;1度Chromeに戻る
Sleep,500 ;待機
Click,600,75 ;アドレスバーをクリック
Send,^a ;バーのテキストを全て選択
Sleep,100 ;待機
Send,^v ;クリップボードのアドレスをペースト
Sleep,500 ;待機
Send,{Enter} ;EnterボタンでWordPressに移動
Sleep,3000 ;待機
Send,^#{Right} ;デスクトップ切り替え(待機を挟んで2回右へ)
Sleep,300
Send,^#{Right}
Click,480,1420 ;VSCodeのアイコンをクリックして起動
Sleep,2000 ;待機
Click,370,1420 ;デスクトップをChromeに切り替え
Sleep,500 ;待機
Click,150,450,0 ;WordPressメニューの「投稿」にマウスを移動してサブメニューを開く
Sleep,1000 ;待機
Click,330,460 ;サブメニューの「投稿一覧」を開く
Return
これまでにご紹介した単純なコマンドを並べるだけで3つのアプリケーション起動からWordPressの「投稿一覧」を開くまでの作業が1キー押すだけで再現できます。
みなさんもぜひAutoHotKeyで色々と試行錯誤して、最高の環境作りを目指してみてください。