「AutoHotKey」はWindowsで使える無料のソフトウェアで、マウス・キーボード操作の自動化やキーコンフィグの変更をすることができます。
できることの例として下記のようなことが挙げられます。
・「a」を押すと「@」が入力される
・「kita-」と入力すると「キタ━━━━━━(゚∀゚)━━━━━━ !!!!!」と入力される
・文字列を選択した状態で「Win+v」を押すと、Firefoxで選択文字列の検索を行う
インストール手順
公式ページはここです。
https://www.autohotkey.com/
この記事の作成時点では、トップページ中央に出る「Download」のボタンを押して、直後に出る「Download Current Version」のボタンを押すとダウンロードできます。
setupファイルがダウンロードされるので、実行して指示に従うとインストールできます。
概要はこちら
概要や使い方をつかむには下記の日本語wikiを見るのがいいでしょう。
概要:http://ahkwiki.net/Reference
関数一覧:http://ahkwiki.net/Commands_Category
結構な情報量があるので、一通り見ればできることがわかるはずです。
情報が古かったり欠けているところもあるので、そういうところだけ英語の情報を拾っていくと良いと思います。
使い方
基本的な流れ
基本的には下記の流れです。
- スクリプトを記述する。
- スクリプトをAutoHotKeyに読み込ませる。
- シャットダウンするまでスクリプトが有効になる。
AutoHotKeyのスクリプトは拡張子が「.ahk」になっています。
右クリックの「新規作成」に追加されている「AutoHotkey Script」を選んでahkファイルを作ることができます。テキストファイルの拡張子をahkに変えても問題ありません。
ログイン時にはAutoHotKeyは起動していませんが、AutoHotKeyのスクリプト(拡張子が「.ahk」)のファイルをダブルクリックすることでAutoHotKeyが起動してスクリプトの内容が反映されます。
アイコンはこんな感じ。
AutoHotKeyが起動するとタスクバーはこんな感じ。
スクリプトの書き方 基本編
「スクリプト.ahk」という名前のファイルを作って中身に下記の内容を記載すると、スクリプトに書いた3種類のマクロが起動します。
;一行のうち、セミコロン以降の文章はコメントです
;メッセージボックスの表示
::btw::
MsgBox, You typed btw.
Return
;キタ-の入力
::kita-::
Clipboard = キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
Send,^v
Return
;カーソル位置の変更
;シャープ記号はWindowsキーを意味します。
#y::
X := 100
Y := 100
MouseMove, X, Y
Return
;aキーにbを割り当て
;一行で書く場合はReturnは不要です。
a::b
一つ目は「btw」と入力したときにメッセージボックスが表示される機能です。
二つ目は「kita-」と入力すると「キタ━━━━━━(゚∀゚)━━━━━━ !!!!!」という文字に変換される機能です。
三つ目は「Win+y」を入力するとマウスカーソルが移動する機能です。
四つ目はAキーを押すと「b」が出力される機能です。
スクリプトの書き方 Firefoxで検索編
選択した文字列をFirefoxで検索するスクリプトです。
基本的にはショートカットキーを自動で入力するようにしているだけです。
あらかじめWin+Aキーで検索を行いたいFirefoxのウィンドウを登録しておいて、Win+Bキーで選択されている文字列を検索する、という使い方をします。
;Win + Aキー
;最前面にあるウィンドウのIDを変数に保存します。
;AutoHotkeyの変数は一つのスクリプトファイル内で有効です。
#a::
WinGet, active_id, ID, A ;最前面にあるウィンドウIDを変数active_idに代入する
Return
;Win + Bキー
;指定したFirefoxのウィンドウで検索を行います。
#b::
X=310 ;変数を設定する。自分の環境ではグーグル検索ページの窓の座標がコレ。
Y=148 ;変数を設定する。自分の環境ではグーグル検索ページの窓の座標がコレ。
bk = %ClipboardAll% ;クリップボードの中身を一時変数に保存。
Sleep, 100 ;100ms待つ。
Send, ^c ;Ctrl + Cキー(大抵コピーだと思います)
ClipWait, 0.5 ;クリップボードに反映されるのを待つ。
WinActivate, ahk_id %active_id% ;登録したウィンドウを最前面に持ってくる。
Send, ^t ;Ctrl + Tキー(新規タブを開く)
Send, ^k ;Ctrl + Kキー(検索窓を選択)
Sleep, 100 ;100ms待つ。
Send, ^v ;Ctrl + Vキー(ペースト)
Sleep, 100 ;100ms待つ。
Clipboard = %bk% ;クリップボードの中身を元に戻す。
Send, {Enter} ;エンターキー
Sleep, 1500 ;1500ms待って検索ページが開かれるのを待つ。
MouseClick, left, X, Y ;検索窓をクリックした状態にして簡単に書き換えられるようにする。
Return
備忘録
自分用に忘れがちな関数やメモを書いていきます。
- 1.1.27.00以降ではvkNNscMMMのようなコードはvkNNに直さないといけない。
- IfWinActive指令を使えば、特定の種類のウィンドウでのみキー割り当てを有効にすることが出来る。
- IfWinActive ahk_class Notepad ;メモ帳のウィンドウがアクティブの時のみ割り当てを行わせる
- IfWinActive ;ウィンドウの限定を解除。endifのような意味合い
- リマップはホットキーに比べて 「修飾キーが有効」「押しっぱなしが有効」などの利点がある。つまり、リマップの名の通りキーの置換をしているような感じになる。
さいごに
AutoHotkeyはプログラミングに慣れている人にとっては非常に使いやすいツールだと思いますが、プログラミングに慣れていない方にとってはもしかしたらハードルが高いかもしれません。
一方で、 作業の効率化という利点が得られたり、導入が簡単だったりというわかりやすいメリットが あるので、「プログラミングに興味があり学び始めたいけど、とっかかりがない」という人にとってはいい勉強材料になると思います。
コメント