解决“动态”/“不稳定”的ahk_class名称?

时间:2015-01-12 05:53:32

标签: autohotkey

在AutoHotKey中,ahk_class NAME一直是程序的良好标识符。通常,我现在通过以下两种方式使用它:

  1. 只需调用最近调用的活动实例:

    按Win + Shift + X将显示(或切换到)Windows Journal应用程序

    + X ::

    IfWinExist ahk_class JournalApp     WinActivate ahk_class JournalApp 其他     运行C:\ Program Files \ Windows Journal \ Journal.exe 返回

  2. 递归调用实例:

  3. i groupadd,FIRE,ahk_class MozillaWindowClass

    ; pressing will "loop through" all the live session of Firefox.
    #3::
    IfWinExist ahk_class MozillaWindowClass
            groupactivate, FIRE, r
    else
        run firefox
    return
    

    但是,某些程序没有稳定的 ahk_class名称。例如,ArcMap.exe应该 在" Windows Spy"中显示以下信息AHK的窗口:

    >>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
    Untitled - ArcMap
    ahk_class Afx:012F0000:b:00010003:00000006:001C0BB0
    

    我知道如何引用具有动态ahk_class的应用程序?

    我知道还有一种名为ahk_exe的东西。但是,我没有发现它与方法groupadd兼容, groupactivateIfWinExist

1 个答案:

答案 0 :(得分:2)

您肯定正在尝试合并ahk_exeGroupAdd(以及其他所有接收WinTitle parameter的命令) 与AHK_L中的ahk_exe兼容;这个示例代码在我的机器上完美运行:

GroupAdd, notepad, ahk_exe notepad.exe
Run, notepad.exe
WinWaitActive, ahk_group notepad
Sleep, 1000
WinClose, ahk_group notepad

我怀疑你没有使用最新版本的AHK。得到它here并再试一次。