1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AHK(AutoHotKey)のv2をwindows11に導入する

Last updated at Posted at 2024-11-18

はじめに

  • ここ数年、会社外のPCとしてmacbookばかり使ってたけど、最近になって軽さにひかれて14インチで900gを切るpcを買ったので、久しぶりにwindowsを仕事以外で使い始めた。
  • そこで、昔、x1carbonをメイン機としてた頃に大変お世話になったAHKを使おうとしたらv2が登場してて、導入方法を簡単に紹介してくれるHPも見当たらなかったので、メモ代わりに投稿することとした。
  • やりたいことは、複雑なことではなく、macbookで使っている「BettertTouchTool」的な使い方。
    • 具体的には、「無変換/変換キー」をCtrlキー代わりにして、いろいろなショートカットキーを自作したい。無変換/変換キーは、ご存じの通りwindowsではショートカットキーに使われることはないので、勝手にショートカットキーを自作してもバッティングする恐れがないから気が楽だし、なによりも親指のホームポジションにあるから、Ctrlキーなんかよりも、操作しやすい。
  • 以前、x1carbonを使ってた頃はAHKのおかげで色々と楽できたけど、macbookでは「英数/かなキー」をCtrlキー代わりにした自作ショートカットを作れなかったから、残念だったよ。
    • まぁ、今回買った900g切りpcは、赤いトラックポイントがないから、ThinkPadに比べて、手をホームポジションに置いたままの作業は難しいだろうけど。

ahkのインストール

  • 公式サイトで、v2をダウンロードして、ダブルクリックするだけ。
  • インストール後、下記が立ち上がる。
    image.png
  • 操作できるアプリとしては「Dash」(ダッシュボードの意味かな?)と「Spy」(これは、v1にも機能があったね)がインストールされるみたいで、上図は「Dash」の画面ということだね。
    image.png
  • 後述するけど、「Dash」「Spy」とも、全く使わなくても、ショートカット自作は可能です。もう、ahkのインストールは終わっているので、メモ帳とかでコードを書いて、.txtを.ahk拡張子に変えるだけで、出来上がりです。

説明サイト

  • 本家が運営しているっぽい雰囲気です。日本語でも書かれているから安心です。

  • 詳しいことはこのサイトを見てほしいけど、本投稿では、何をやれば何が出来るかの雰囲気づかみまで出来るようにするね。
  • ちなみに、「Dash」画面の右側の「Using the Program」をクリックすると、上記サイトの英語版と同じような内容が見れるよ。でも、日本語がないから、英語ができる人だけ代替可能だね。
    image.png

はじめての実行

  • とにかく、正常にインストールできたか試してみよう。「Dash」は立ち上がってなくてOK。
  • 説明サイトの下記ページで、サンプルコードを取得できる。
    image.png
  • 赤矢印の先のボタンを押すと、下記の通り、ahk形式のファイルがダウンロードされる。
    explorer_aiMUlnAsEx.jpg
  • メモ帳で中を見れば、当然これだけ書かれている。MsgBox "Hello, world!"
  • これをダブルクリックすると、スクリプトに従い、下記の画面が出る。
    AutoHotkey64_DfUs6Km0rB.jpg
  • この画面が出ている間は、タスクトレイに緑の「H」マークが出ている。OKボタンを押すと、タスクトレイのHマークも消える。つまり、Hマークは、「スクリプト実行中ですよ!」ということ。
    mBOx7WJQ5b.jpg
  • また、このHマークを右クリックすると下記が表示される。v1と同じような感じだね。
    5GwXMpukfm.jpg
  • ふむふむ、動作確認は出来たよ。
  • でも、本来のやりたいことは、メッセージボックスにhello_worldすることじゃなく、自作ショートカットを作ることです。
  • ここから先は、多少はコードの学習が必要なようだね。

スクリプトの書き方のイメージ

  • 説明サイトのここにこんなことが書いてある。
    msedge_u9s3EcPSNW.jpg
  • 上記に従うと、win+Nをホットキーとして、notepadを起動する場合は、こんな感じ。
#n::Run "notepad"
  • 少し高度化して、notepadが起動前か起動後かで行動を変える場合は、こんな感じ
#n::
{
    if WinExist("ahk_class Notepad")
        WinActivate  ; 上記のウィンドウをアクティブにします
    else
        Run "notepad"  ; メモ帳の新規ウィンドウを開く
}
  • おぉ、これでイメージが掴めたね。

  • また、ショートカットキーという呼び方でなくホットキーと呼ぶのが流儀とわかったよ。

  • そして、ホットキー設定は、「#_winキー」+「nキー」+「::ダブルコロン」+「実行したいコード」

  • ちなみに、このページの下の方を見ると、winキー以外の対応も書いてあった。「一般的な修飾語は、Ctrl(^)、Alt(!)、Shift(+)、Win(#)です。」

  • で、Ctrl等の、他のボタンと一緒に押すことが前提のキーなら、上記のようにホットキーを設定できるけど、単体で機能するキー同士でホットキーを作るときは、下記のような書き方をしないとダメと同じページに書いてある。
    image.png

  • ふむふむ、このような組み合わせをカスタムコンビネーションと呼ぶのだね。

  • また、本来、カスタムコンビネーションは3つ以上のキーを設定できないみたいだけど、下記の通り、#Hotifを使えば、3つでもいけるみたい。ちなみに、図の文章では「2つ以上のキー」って書いてあるけど、原文では「more than two」だから、2は含まないと思うよ。
    image.png

  • 最後に、最重要なコマンド「Send keys」を紹介するよ。と言っても、単純にキー送信を行うだけのコマンドだけどね。keysについては、以下のとおり。
    image.png

  • とりあえず、書き方のイメージはここまで!

JISキーボードのスキャンコードとか

  • キーを組み合わせるとき、winキーとnキーなら、「#n」だったけど、「変換キー」とかって、どうやって表現すればよいの?と思うだろうけど、そいつらは、スキャンコードで表現するのが、autohotkeyの流儀です。
  • 有名どころのスキャンコードは以下の通り。
キー コード
変換 sc079
無変換 sc07b
カナ sc070
半/全 sc029
英数 sc03a
  • もちろん、全てのキーはスキャンコードを持つよ。自分で確かめたい人は、chgkeyをインストールして調べてみて。AutoHotKeyにその機能があればいいんだけど、なぜか見つからないから、chgkeyを紹介するね。
    image.png
  • このソフトを立ち上げて、「調査」ボタンを押したら、「キーボードのキーを調べます」の画面が開くから、その状態で、何かのキーを押すと、スキャンコードが表示されるよ。AutoHotKeyで使うときは、下3桁の数字の頭に「sc」をつけて使って。
    • ちなみに、このchgkeyは、キーの入れ替えを簡単に行えて、しかも常駐しないアプリだから気に入ってる。レジストリを書き換えるだけのアプリだから、cpu負担なし!windowsマシンを買ったら、「カナキー」を「altキー」に入れ替えて、「applキー」を「winキー」に入れ替えるのがお気に入り。それに、でかいくせに使い道の低い「CapsLock/英数キー」を「Ctrlキー」にしたり、使わなくなった「半角/全角キー」を「escキー」にするのも良い。
  • また、キーは、スキャンコード以外の「名前」でも表現できるよ、例えば、左矢印キーの名前は「Left」。詳しくは、キー名称一覧を見てね。

「Dash」を使ったエディタ起動

image.png

  • AutoHotKeyでのホットキー作成は、「メモ帳」アプリでスクリプトを書いて、拡張子を.ahkにするだけで作れるけど、本来的には「Dash」でやるんだろうね。一応、「Dash」の画面の説明するけど、メモ帳とかで直接書くよ、という人は、本項目は読み飛ばしてね。
  • 「Dash」を起動して、画面左上の「New Script」をクリックすると、下図が出るよ。
    スクリーンショット 2024-11-14 224753.jpg
  • 画面を見ると、保存用フォルダはユーザー名直下のドキュメントフォルダに勝手に「AutoHotKey」フォルダが作られて、そこに入れることになるみたい。当然、画面右上にあるフォルダボタンを押せば、任意の場所を保存用フォルダに指定できる模様。
  • 適当なファイル名をUntiledと書かれている欄に記入し、「Minimal for v2」を選択して、Editボタンを押すと、次の画面になる。
    image.png
  • editor選択が出来るみたいだけど、「メモ帳」を選択すると、Command line にコマンドが埋め込まれるので、その後「OK」を押すと、メモ帳で「先ほど書いたファイル名.ahk」が開かれている。
    image.png
  • つまり、ここまでの一連の流れは、エクスプローラー上で、「ファイル名.ahk」を新規作成して、メモ帳で開いたのと大差ない。「Minimal for v2」を選択して、Editボタンを押したため、メモ帳で開いたファイルの1行目に「#Requires AutoHotkey v2.0」が書かれているのがサービスって感じだろうか。この一行の意味はよくわからないけど、将来的に、v2.1のAutoHotKeyがでて、それ用のスクリプトが書かれたときは「#Requires AutoHotkey v2.1」と書いて、そのスクリプトを実行しようとしたPCにインストールされてるAuとHotKeyがv2.0だったときに、「v2.1がインストールされていません!」とか表示させるつもりなのかな?現時点では、不要っぽい文だね。

ahkでホットキーを追加

  • ここからやっと、本来やりたかったことの説明ができるよ。

  • 昔よく使っていたホットキーとして、以下の二つがあったから、v2でも再現してみるね。

    • [変換]+[i]:デスクトップ画面を左へ1つ進む
    • [変換]+[o]:デスクトップ画面を右へ1つ進む
  • 上記は、下記の通りタッチパッド4本指でのスワイプでもできるように設定しているし、macbookでも同じスワイプ動作にしているけど、ホームポジションから話すことになるから、少し嫌なんだよね。
    image.png

  • さて、じゃあ、コードを書いてみようか...おっと、そうだった。AutoHotKey用のコードは「スクリプト」と呼ぶのが流儀だった。

~sc079 & i::Send("#^{Left}")
~sc079 & o::Send("#^{Right}")
  • とりあえず、これで動いたよ。
    • ところで、「~:チルダ」を忘れずにね。これをつけないと、「変換キー」を普通に使うとき(例えば、「IMEオン割当て」で使用時)の機能が使えなくなるよ。

おわりに

  • AutoHotKeyは、高機能だけど、使いこなすにはそれなりの知識が必要。
  • だけど、「変換キー」を有効活用する程度なら、上記のスクリプトで十分。
  • この投稿が、みんなの利便性向上につながったら嬉しい。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?