25254


こちらのAutoHotkeyのスクリプトを使ってWindowsでEmacsキーバインドを使いたかったのですが、  
xyzzyでオフにする方法がわからず困っています。

<https://github.com/usi3/emacs.ahk/blob/master/emacs.ahk>

除外するWindowを追加する時は`is_target()`関数を変更すればよいと説明があったので

[code]

        is_target()
        {
          IfWinActive,ahk_class ConsoleWindowClass ; Cygwin
            Return 1 
          IfWinActive,ahk_class MEADOW ; Meadow
            Return 1 
          ;(略
        }
    
[/code]

に`xyzzy`と書いてみましたが効果はありませんでした。

`ahk_class`の引数に使う名前は`WinGetClass`を使って取得できるという情報があったため  
<https://autohotkey.com/docs/misc/WinTitle.htm>

[code]

        WinGetClass, class, A
        MsgBox, The active window's class is "%class%".
    
[/code]

というサンプルにあったスクリプトを使い取得してみましたが空白が表示されるだけでした。

`xyzzy`を除外するためのタイトルはどうすれば取得できるでしょうか？  
除外対象にできるのであれば方法はなんでも構いません。


CC BY-SA 3.0
2016-05-27T22:22:40.273
25233
2016-05-28T18:55:02.053
3271
question
windows xyzzy autohotkey
AutoHotkeyのemacs.ahkでxyzzyを除外Windowに指定する方法


Windows 10(x64)の環境でxyzzyのウィンドウを調べたところ下記のようになりました。

[code]

    xyzzy 0.2.2.253@DESKTOP-******* - *scratch*
    ahk_class 　
    ahk_exe xyzzy.exe
    
[/code]

つまり、emacs.ahkの`is_target()`に下記の行を追記すれば`Return 1`が実行されるかと思います。

[code]

      IfWinActive,ahk_exe xyzzy.exe ; xyzzy
        Return 1
    
[/code]

念のため、ご自身の環境でxyzzyウィンドウの`ahk_class`と`ahk_exe`をご確認されることをおすすめします。

xyzzyウィンドウの確認方法

1.タスクトレイのAutoHotKeyのアイコンを右クリックしてWindow Spyを選択  
2.xyzzyのウィンドウをアクティブにする  
3.Active Window Infoの`Window Title, Class and Process:`に表示される情報を確認

* * *

余談

xyzzy自身がemacsキーバインドで動作しており、この設定が動いているのか分からなかった為、下記の設定を行ってxyzzyで適当なコマンドを打った時、xyzzyのウィンドウが閉じられることで確認を行いました。

[code]

      IfWinActive,ahk_exe xyzzy.exe ; xyzzy
        WinClose
        Return 1
    
[/code]


CC BY-SA 3.0
2016-05-28T18:55:02.053
25254
2016-05-28T18:55:02.053
3068
25233
answer