AHK メモ

2009/01/25

愛用中の AHK ( AutoHotKey ) に関して備忘録かねて色々。

AHK と繭

最初は窓使いの憂鬱 ( 繭 ) を使っていたんですが、「窓使いの憂鬱が Vista には対応しない」「代わりに AHK でも結構いろいろできるらしい」ということでボチボチ使い始めました。使い出してみたら便利で手放せない勢いです。AHK はコンパイルが超簡単にできちゃうので、AHK を入れてない PC で使うこともできるのがいいですねー。

ちなみに窓使いの憂鬱でできて、AHK でイマイチなのは Win Ctrl Alt などの修飾キー ( モディファイアキー, modifier key ) の入れ替え。他のキーの置き換えは良いんですが、モディファイアキーの置き換えは得意じゃない様子。

私は思い切ってモディファイアキーは「KeySwap for XP(WindowsNT/2000/XP/Vista / ユーティリティ)」を使ってレジストリを書き換えてしまってます。共有 PC じゃない限り問題ないのでいいかなと。

これだけは覚えておきたい

;メモ
;# = Win , ! = Alt , ^ = Ctrl , + = Shift
;左Ctrl = LCtrl , ひらがなカタカナ = vkF2sc070
;変換 = vk1Csc079 , 無変換 = vk1Dsc07B
;半角 = vkF4sc029 , 全角 = vkF3sc029

;Process,Exist,ahk_class hogehoge	;hogehogeが起動しているかチェック
;#IfWinExist,ahk_class hogehoge		;hogehogeのウィンドウがあるかチェック
;#IfWinNotExist,ahk_class hogehoge ;hogehogeのウィンドウがないかチェック

[Win] + [R] で AHK リロード

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; [Win]+[R]でAHKリロード
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#r::Reload

[半角/全角] に [Esc] を割り当て

vkF4sc029::Send {Esc}
vkF3sc029::Send {Esc}

↑→↓←のキー割り当て

vim のキーバインドになれたらこれは最高。

+^h::Send {left}    ;Ctrl+Shift+Hに←キーを割り当て
+^j::Send {down}    ;Ctrl+Shift+Jに↓キーを割り当て
+^k::Send {up}      ;Ctrl+Shift+Kに↑キーを割り当て
+^l::Send {right}   ;Ctrl+Shift+Lに→キーを割り当て

[Ctrl] + [@] に [Shift] + [F10] (コンテキストメニュ)を割り当て

F10 て遠いし押しにくい気がするんです…キーボードだけで作業を完結したい状態では高頻度で使用中。

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;[Ctrl]+[@]に[Shift]+[F10](コンテキストメニュ)を割り当て
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
^@::+F10

[Win] + [Q] にアクティブウィンドウを閉じる動作を割り当て

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;[Win]+[Q]にアクティブウィンドウを閉じる動作を割り当て
;「A」はアクティブウィンドウを表す指定
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#q::WinClose,A

各ソフトのウィンドウで有効になる設定系

私は IME の ON/OFF を「変換」「カタカナひらがな」キーに割り当てて、「半角/全角」も「Esc」として使っているためこんな設定です。
「半角/全角」が「Esc」だと vim を使うとき楽なので…

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;↓ここから下は各ソフトのウィンドウで有効にする系
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;メモ帳を[Esc]と[半角/全角]で閉じる
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#IfWinActive,ahk_class Notepad

Esc::WinClose
vkF4sc029::WinClose
vkF3sc029::WinClose

#IfWinActive                    ;ウィンドウの限定を解除

;エクスプローラーを[Esc]と[半角/全角]で閉じる
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#IfWinActive, ahk_class CabinetWClass

Esc::WinClose
vkF4sc029::WinClose
vkF3sc029::WinClose

#IfWinActive                    ;ウィンドウの限定を解除

コンパイルして exe 化するとアンチウィルスソフトに怒られる件

ノートン先生に exe 化した AHK がつかまって勝手に削除されたりして、結構困ってたんですよね。

圧縮された実行ファイルの解凍機能部分のパターンがコンピュータウイルスと似ているため、一部のアンチウイルスソフトウェアでは圧縮された実行ファイルをウイルスとして誤検出することもある。

プログラミング用語 – プログラミングスレまとめ in VIPより引用』

上記の内容のせいだったのかな。nProtect ( gamegard ) にも弾かれていたんですが、以下の内容通りに圧縮せずにコンパイルしたら弾かれなくなりました。

Q.コンパイルした実行ファイルがアンチウイルスソフトに怒られるんだけど?

A.Compile_AHK II を試してみて下さい(08年12月14日現在)。"No UPX"オプションがあるので、UPXで圧縮しないでコンパイルしてみて下さい。 もしかしたら改善されるかもしれません。

関連用語:実行ファイル圧縮

AutoHotKey – プログラミングスレまとめ in VIPより引用』

まとめスレに感謝><