IrfanViewのahk_class

AutoHotkey

#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の仕組みとかアセンブラとか少しやってみたことがあったけど、ぜんぜん物にならなかった。だが今日は少しは役に立ったな。