こういうホットキーがあればいいのに!を実現できるソフト

AutoHotkey のアイコン

AutoHotkey

  • 海外
  • 日本語✕
  • 寄付歓迎

ダウンロード寄付

対応OS:
Windows Vista/7/8/8.1/10
バージョン:
1.1.37.01 / 2.0.10(2023/09/24)
価格:
無料

Windows のキーの組み合わせに、「何かのキー」を割り当てられるソフトです。
いつも使っているキーボード操作をより便利にしたい、マウスをなるべく使わずにキーボードで完結したい、といった場合に役立ちます。
動作の命令を記述する ” スクリプト ”を作成することで、本ソフトはスクリプトを読み込んで実行します。
スクリプトを作成することで、次のようなキーの置き換えや動作を設定、実行できるようになります。

  • 矢印キーを置き換えてホームポジションの近くに配置
  • あまり有効に利用されていないような無変換キーや変換キーを組み合わせた有効活用法
  • ウィンドウの最大化・最小化のような単純な操作
  • 条件分岐やループなどを使った、Windows 上で複雑な動作(より専門的な記述が必要となります)
提供元:
※ 本ソフトの v2.0.10 のインストーラーは VirusTotal で好ましくない結果が出ているため、安全面を考慮するのであれば「v1.1.37.01」の利用を推奨します。

AutoHotkey #1: Install and Hello World(英語)

AutoHotkey の使い方

ダウンロード

  1. 提供元サイトのダウンロードページへアクセスし、「v1.1.37.01」ボタンをクリックしてダウンロードします。
    USB メモリー等で持ち運べるポータブル版を利用する場合は、「v1.1.37.01」ボタン下の「v1.1.37.01」リンクをクリックしてダウンロードします。
    ※ 本ソフトの v2.0.10 のインストーラーは VirusTotal で好ましくない結果が出ているため、ここでは念のため「v1.1.37.01」を利用するものとします。
  2. ダウンロードしたセットアップファイル(AutoHotkey_1.1.37.01_setup.exe)からインストールします。
  3. 「Please select the type of installation you wish to perform.(実行するインストールタイプを選択してください)」画面が表示されます。
    「Express Installation」をクリックします。
  4. 「Installation complete.(インストール完了)」画面が表示されます。
    • View Changes & New Features
      本ソフトのヘルプファイルの「Changes & New Features(変更と新機能)」画面が表示されます。
    • View the Tutorial
      本ソフトのヘルプファイルの「Tutorial (quick start)(チュートリアル(クイックスタート))」画面が表示されます。
    • Run AutoHotkey
      本ソフトのヘルプファイルの「Welcome」画面が表示されます。
    • Exit
      セットアップ(インストール)を終了します。
    ※ 上3つの選択しではインストール完了画面が閉じられることはないため、最終的に一番下の選択肢である「Exit」をクリックすることになります。

使い方

設定サンプル

メッセージボックスを表示する
  1. メモ帳を開き、次のテキストを記入します。
    MsgBox, Hello AutoHotkey world
  2. 次のように指定して保存します。
    • ファイル名
      script.ahk
    • ファイルの種類
      すべてのファイル (*.*)
    • 文字コード
      UTF-8
  3. 保存した script.ahk をダブルクリックして実行すると、「Hello AutoHotkey world」ウィンドウが表示されます。
    「Hello AutoHotkey world」ウィンドウの表示

    「Hello AutoHotkey world」ウィンドウの表示


「Alt」+「4」キーでアプリケーションを終了する
アプリケーションの終了ホットキーとして Alt + F4 キーがあります。
Alt + F4 キーだと F4 キーが少し遠いので、4 キーで代用してしまおう、というものです。
  1. メモ帳を開き、次のテキストを記入します。
    !4::Send,!{F4}
    return
  2. 次のように指定して保存します。
    • ファイル名
      QuitAlt4.ahk
    • ファイルの種類
      すべてのファイル (*.*)
    • 文字コード
      UTF-8
  3. 保存した QuitAlt4.ahk をダブルクリックして実行すると、タスクトレイicon アイコンが表示されます。
    この状態が先ほど設定したスクリプトが有効な状態です。
    試しにいま開いているメモ帳をクリックして(アクティブにして)、Alt + 4 キーを押すとメモ帳が閉じられることを確認できます。
  4. 本スクリプトを終了するには、タスクトレイの icon アイコンの右クリックメニュー「Exit」から終了できます。

「無変換」+「J」キーで矢印キー左に動かす
矢印キーはキーボードの少し離れた位置にあるので、無変換キーを活用してなるべく手を動かさずに矢印キーを押すということを目的としたキーバインド(複数キーの組み合わせ)です。
  1. メモ帳を開き、次のテキストを記入します。
    vk1D & j::Send, {left}
  2. 次のように指定して保存します。
    • ファイル名
      ArrowLeft.ahk
    • ファイルの種類
      すべてのファイル (*.*)
    • 文字コード
      UTF-8
  3. 保存した ArrowLeft.ahk をダブルクリックして実行すると、タスクトレイicon アイコンが表示されます。
    この状態が先ほど設定したスクリプトが有効な状態です。
    試しにいま開いているメモ帳をクリックして(アクティブにして)、無変換 + J キーを押すとメモ帳内で点滅しているキャレットが左に移動することを確認できます。
  4. 本スクリプトを終了するには、タスクトレイの icon アイコンの右クリックメニュー「Exit」から終了できます。

実装サンプル - 複数設定する
複数のスクリプトを組み合わせて、実際に利用できる設定のサンプルです。
  1. メモ帳を開き、次のテキストを記入します。
    ; 無変換 + J キー ⇒ キー
    ; 無変換 + L キー ⇒ キー
    ; 無変換 + I キー ⇒ キー
    ; 無変換 + K キー ⇒ キー

    vk1D & j::Send, {Blind}{Left}
    vk1D & l::Send, {Blind}{Right}
    vk1D & i::Send, {Blind}{Up}
    vk1D & k::Send, {Blind}{Down}

    ; 無変換 + , キー ⇒ Home キー
    ; 無変換 + . キー ⇒ End キー
    vk1D & vkBC::Send, {Blind}{Home}
    vk1D & vkBE::Send, {Blind}{End}

    ; 無変換 + U キー ⇒ PageUp キー
    ; 無変換 + O キー ⇒ PageDown キー
    vk1D & u::Send, {Blind}{PgUp}
    vk1D & o::Send, {Blind}{PgDn}

    ; 無変換 + 1 キー ⇒ F1 キー
    ; 無変換 + 2 キー ⇒ F2 キー
    ; 無変換 + 3 キー ⇒ F3 キー
    ; 無変換 + 4 キー ⇒ F4 キー
    ; 無変換 + 5 キー ⇒ F5 キー
    ; 無変換 + 6 キー ⇒ F6 キー
    ; 無変換 + 7 キー ⇒ F7 キー
    ; 無変換 + 8 キー ⇒ F8 キー
    ; 無変換 + 9 キー ⇒ F9 キー
    ; 無変換 + 0 キー ⇒ F10 キー
    vk1D & 1::Send, {Blind}{F1}
    vk1D & 2::Send, {Blind}{F2}
    vk1D & 3::Send, {Blind}{F3}
    vk1D & 4::Send, {Blind}{F4}
    vk1D & 5::Send, {Blind}{F5}
    vk1D & 6::Send, {Blind}{F6}
    vk1D & 7::Send, {Blind}{F7}
    vk1D & 8::Send, {Blind}{F8}
    vk1D & 9::Send, {Blind}{F9}
    vk1D & 0::Send, {Blind}{F10}
    ※ 無変換キーとの組み合わせで別のキーを実行できるようにするスクリプトです。
    ※ {Blind} を追加すると他のキーとの組み合わせの動作も可能となります。例えばブラウザーでページを開いているときに Alt + 無変換 + J キーを押して前のページに移動可能となります。
    ※ ; の行はわかりやすいように補足したコメント行なので削除したり、自分なりのコメントに書き換えても動作は変わりません。
    実装サンプル

    実装サンプル

  2. 次のように指定して保存します。
    • ファイル名
      AutoHotkey.ahk
    • ファイルの種類
      すべてのファイル (*.*)
    • 文字コード
      UTF-8
  3. 保存した AutoHotkey.ahk をダブルクリックして実行すると、タスクトレイicon アイコンが表示されます。
    この状態が先ほど設定したスクリプトが有効な状態です。
  4. 本スクリプトを終了するには、タスクトレイの icon アイコンの右クリックメニュー「Exit」から終了できます。

キーリスト

制御キー
※ v1.1.27.00 よりキーが変更となり、例えば無変換キーは vk1Dsc07B ⇒ vk1D に変更となり、最初の vk から始まる4文字のみが有効となり、sc 以下は不要となりました。

修飾キー

修飾キーの使い方
修飾キーは、次のように記述します。
#z::Run www.autohotkey.com
Windows + Z キーを押すと、ブラウザーで www.autohotkey.com を開きます。

修飾キーを複数組み合わせる場合は、次のように記述します。
^!n::
IfWinExist 無題 - メモ帳
WinActivate
else
Run Notepad
Ctrl + Alt + N キーを押すと、「無題 - メモ帳」というタイトルのウィンドウがあればアクティブにし、なければメモ帳を起動します。

更新履歴

機械翻訳で日本語にしています。
v2 系
Version 2.0.10
(2023/09/24)
  • #HotIf の後に名前付き関数のホットキーを使用するとクラッシュする問題を修正しました。
  • 行が継続しないようにドットで終わる数値リテラルを修正しました。
  • 連鎖配列のインデックス付けで動作するように事前のインクリメント/デクリメントを修正しました。
  • OnEvent にのみ適用されるスタイルを適用する OnNotify/OnCommand を修正しました。
  • emptydir&yqn;* 使用時に FileExist/DirExist でハンドルがリークする問題を修正しました。
  • ファイルのみが一致する場合にハンドルがリークする DirExist を修正しました。

Version 2.0.9
(2023/09/17)
  • X オプションを使用したホットストリングのスタックを修正しました。
  • 関数がスタックの一番下にある場合、デバッガーがローカル変数をリストしない問題を修正しました。
  • デバッガーの呼び出しスタックに表示されるように Gui スレッドを修正しました。
  • ExitApp でスタック オーバーフローを引き起こす &/ByRef のいくつかの組み合わせを修正しました。

Version 2.0.8
(2023/09/11)
  • ByRef パラメータが設定されていない場合、呼び出し元の VarRef にデフォルト値を誤って割り当てる問題を修正しました。
  • 抑制された Alt/Ctrl/Shift/Win ホットキーに影響を与えるいくつかの問題を修正しました。
    • *LCtrl:: アクティブ ウィンドウから LCtrl をブロックしましたが、システムは Ctrl キーが押されていると判断するため、Alt キーとキーの組み合わせの送信は失敗し、そのため WM_SYSKEYDOWN の代わりに WM_KEYDOWN が送信されます。
    • *LAlt:: により、システムは以前の {LAlt DownR} を忘れてしまうため、LAlt が抑制されていたとしても、LAlt が物理的にダウンしている間は、LCtrl::LAlt などの再マッピングは正しく動作しません。
    • システムの修飾キーの低レベル追跡が論理状態と一致しないその他の潜在的な問題。
  • 継続セクションに影響を与えるいくつかの問題を修正しました。
    • Join オプションのエスケープ シーケンスは 2 回変換され、```` は 2 つではなく 1 つのリテラル ` になり、``n は改行になりました。
    • 継続セクションが同じタイプの引用符で囲まれており、` オプションがない場合、`" または `' は、リテラルの引用符を生成する代わりに、リテラルのバックティックを生成して文字列を終了します。
  • 継続セクション内の引用符とバックティックの自動エスケープを最適化しました。
  • 太い矢印関数を含む行で重複を返すbreakpoint_list (デバッガー) を修正しました。
  • +BackgroundDefault が Gui の BackColor プロパティをオーバーライドできない問題を修正しました。

v1 系
Version 1.1.37.01
(2023/07/08)
  • 競合状態によりホットキーが起動しない問題を修正しました。Send や GetKeyState などの修飾子ホットキーの ~*RWin:: 呼び出しが早すぎると、OS が RWin がダウンしていないことを報告する可能性があるため、フックの修飾子の状態が「修正」され、ホットキーが誤って起動されるか、起動に失敗します。これは、別のキーボード フックがスクリプト自体のフックよりも最近にインストールされた場合にのみ発生する可能性があります。その場合、OS は、他のフックのスレッドが再開して戻るまでキーの状態を更新しないためです。
  • #If で設定された Last Found Window を使用するようにホットストリングを修正しました。
  • MouseGetPos、ControlClick、ContextMenu Gui イベント、および DropFile Gui イベントが、実際にはコントロールの 1 ピクセル下または右にある特定のポイントでコントロールを誤って検出する問題を修正しました。
  • OS がフックを自動的にアンインストールした場合、キーボードまたはマウスのフックを再インストールしようとしても失敗する問題を修正しました。そのような試みを行う前に、特定の条件を満たす必要があります。

Version 1.1.37.00
(2023/07/02)
  • 大きな整数を VT_R8 (浮動小数点) ではなく VT_I8 として渡すように COM メソッドとプロパティの呼び出しを変更したため、元の型と精度が保持されます。32 ビット範囲の整数は引き続き VT_I4 として渡されます。
  • IDispatch でラップされた AutoHotkey オブジェクトを使用した 2 変数列挙子 (for ループ) のサポートが追加されました。オブジェクトを呼び出すスクリプトとオブジェクト自体は、サポートされている AutoHotkey バージョンを実行している必要があります。
  • 着信 COM 呼び出しで ByRef VARIANT のサポートが追加されました。VT_BYREF|VT_VARIANT バリアント型を持つ ComObject ラッパーを受け取る代わりに、スクリプトは通常の ByRef パラメーターと互換性のある一時変数を受け取ります。
  • 受信 COM 呼び出しでパラメーターを省略するためのサポートが追加されました。IDispatch では、値 DISP_E_PARAMNOTFOUND を持つ VT_ERROR 型の VARIANT を指定することで、パラメーターを省略できます。これらの値は、オブジェクトにラップされるのではなく、自動的に変換されるようになりました。逆変換は、以前のバージョンで COM メソッドを呼び出すときにすでに行われていました。
  • コードサイズを修正し VerCompare(a, ">" b)、わずかに縮小しました。
  • 他のエラーと矛盾しないように、AltTab 関連のロード時間エラーを修正しました。
  • ComObject ラッパーがオブジェクト/COM 経由で呼び出された場合に正しく伝播されないことによってスローされるエラーを修正しました。
  • ^ シンボルと ! をホットキーとして設定できるようにホットキー GUI コントロールを修正しました+。
  • 値がシンボルに設定されている場合に修飾子を含めるようにホットキー コントロールを修正しました。
  • 固定メニュー メニュー挿入で追加された項目を上書き追加します。
  • 単一の文字を使用した場合の、InputHook.KeyOpt() の潜在的な誤動作を修正しました。
    ・オプションの削除は、対応する SC に影響を及ぼさない可能性があります。
    ・オプションは sc000 にも適用される可能性があります。
  • #If で無効にすると、 や などのホットキーのセットが if 単独のリリース a & b:: を抑制できないというカスタム コンボのバグを修正しました。a:: a up:: a a::
  • キーダウン イベントがホットキーによって正しく抑制されるが、SendLevel > 0 で追加のキーダウンを送信すると、送信されたイベントが #InputLevel により無視された場合でも、後続のキーアップが抑制されなくなるバグを修正しました。
  • ifが存在しても #If によって無効化される a & b up:: のを抑制しない問題を修正しました。b a & b::
  • 組み込み IDispatch のキャッシュされた COM プロパティ名の割り当てが最適化されました。
  • AutoHotkey のビルド構成を DLL としてサポートするようにコードがリファクタリングされました。

フィードバック

ユーザーレビュー

  • 5

    バージョン 1.1.37.01 を使用中です

    Mimic
    Mimic
    投稿数: 17件
    Windows 10

    バージョン 1.1.37.01 を使用中です。

    【良かった点】
    (1) Windowsキーとキーボードの数字を同時押しでタスクバーにピン留めしたソフトを起動できます。ところがWindowsキーが押しにくい位置のキーボードがあったりします。そういった場合にこのソフトが活躍します。

    例えば、「SHIFTキー と F の同時押し」でWindowsキーと数字の同時押しが実現できたりします。

    (2)解説サイトが沢山あるので独学でどうにかなる点

    【気になった点】
    バージョン1と2でソフトが結構違うようなので、解説サイトがどちらのバージョンをベースにしているか確認が必要です。

    1人が参考になったと回答しています。
    このレビューは参考になりましたか?
  • コメント

    > 「無変換」+「J」キーで矢印キー左に動かす

    username
    username
    投稿数: 1件
    Windows 11

    > 「無変換」+「J」キーで矢印キー左に動かす
    >
    > 試しにいま開いているメモ帳をクリックして(アクティブにして)、
    > 無変換 + J キーを押すとメモ帳が閉じられることを確認できます。

    「カーソルが左に動く」ではないでしょうか?

    7人が参考になったと回答しています。
    このレビューは参考になりましたか?
  • 5

    【追記あり】これだけ自由度の高いカスタマイズソフトはなかなかないでしょう(少な…

    46
    46
    投稿数: 11件
    Windows 10

    これだけ自由度の高いカスタマイズソフトはなかなかないでしょう(少なくとも私は知りません)
    altやctrl等の一般的な修飾キーだけでなく、普通のキーも修飾キーのように使えてしまうのが特にいいです
    三つ以上のキーを同時押しのトリガーにしようとするのが面倒なのが惜しいですが、それを差し引いても便利ですね
    ちなみに、私はAutoHotkeyフォルダ以下にmyscriptというフォルダを作りそこに他スプリプトとmain.ahkというファイルを配置し、main.ahkに
    #include スクリプト名.ahk
    とファイル名を列挙することによって、タスクバーに無駄にアイコンが出まくることがないようにしています
    (一つのファイルに全部まとめるという手もあると思うんですが、一覧性が悪くなってちょっと嫌だったんですよね。なにより、機能を確認するためだけなのに謎の文字列を見なければいけないのは精神衛生上よくない...)
    起動は上の階層にmain.ahkのショートカットを配置して、そこから行っています
    ありふれたテクではありますがご参考まで


    今更で申し訳ないのですが、windowsのファイル名のエンコーディングがsjisである関係か日本語の扱いに問題があるからかわかりませんが、日本語ファイル名のものを扱う場合「main.ahk」に関してはsjisで書かないとincludeできないようです
    それと、三つ以上のキーを使う方法を通常のトリガーキーと同じキーで使う場合にはelse文を使う必要があるため、機能ごとに分けることが難しいようです

    5人が参考になったと回答しています。
    このレビューは参考になりましたか?

AutoHotkey に投稿されたすべての評価・評判・レビューを見る(全 5 件)