IrfanViewのahk_class
#IfWinActive, ahk_class IrfanView WheelDown:: Send, {PgDn} WheelUp:: Send, {PgUp} MButton:: Send, {Enter} XButton1:: Send, {Space} XButton2:: Send, {Backspace}
とやってるのだが、IrfanView を全画面にすると効かなくなるんだよな。
Windows Spy で何とか調べてみたら ahk_class FullScreenClass とか言ってる。全画面はどうも別のウィンドウみたいだな。しかしクラス名が一般的するぎるのでどうもあやしい。念のため i_view32.exe を検索してみたがそんな文字列はない。とういか IrfanView という文字列すら見つからない。もしやと思い Process Explorerで見ると色が紫。パックされてるわ。
バイナリを Stirling で覗いてみると先頭の方に UPX0 という文字列(たぶんセクション名)が見えるのでどうも UPX (the Ultimate Packer for eXecutables) で圧縮されてるっぽいな。
copy i_view32.exe a.exe upx -d a.exe
で展開して中身を覗いてみると、やっぱり RegisterClass してたわ。
なんか他と衝突しそうなクラス名でいやだな。
昔「バイナリ変更」とかに憧れて、EXEの仕組みとかアセンブラとか少しやってみたことがあったけど、ぜんぜん物にならなかった。だが今日は少しは役に立ったな。