解决一个"dynamic"/"unstable"ahk_class名字?
Solution to a "dynamic"/"unstable" ahk_class name?
在 AutoHotKey 中,ahk_class NAME
一直是程序的良好标识符。通常,我现在通过以下两种方式使用它:
- 简单地调用最近调用的活动实例:
; Pressing Win+Shift+X will bring up (or switch to) the Windows Journal
Application
#+x::
IfWinExist ahk_class JournalApp
WinActivate ahk_class JournalApp
else
Run C:\Program Files\Windows Journal\Journal.exe
return
- 将 windows 与相同的
ahk_class
分组并循环遍历它们:
GroupAdd, FIRE, ahk_class MozillaWindowClass
; Pressing Win+3 will go through all open Firefox windows one by one.
#3::
IfWinExist ahk_class MozillaWindowClass
GroupActivate, FIRE, r
else
Run firefox
return
但是,某些程序没有 稳定 ahk_class
名称。例如,ArcMap.exe 应该
在 AHK 的“Windows Spy”window 中显示以下信息:
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Untitled - ArcMap
ahk_class Afx:012F0000:b:00010003:00000006:001C0BB0
知道如何引用这个具有动态 ahk_class
的应用程序吗?
我知道还有一个叫做 ahk_exe
的东西。但是,我没有发现它与方法 GroupAdd
兼容,
GroupActivate
或 IfWinExist
.
您尝试合并 ahk_exe
绝对是在正确的轨道上。 GroupAdd
(以及其他所有收到 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 再试一次。
在 AutoHotKey 中,ahk_class NAME
一直是程序的良好标识符。通常,我现在通过以下两种方式使用它:
- 简单地调用最近调用的活动实例:
; Pressing Win+Shift+X will bring up (or switch to) the Windows Journal
Application
#+x::
IfWinExist ahk_class JournalApp
WinActivate ahk_class JournalApp
else
Run C:\Program Files\Windows Journal\Journal.exe
return
- 将 windows 与相同的
ahk_class
分组并循环遍历它们:
GroupAdd, FIRE, ahk_class MozillaWindowClass
; Pressing Win+3 will go through all open Firefox windows one by one.
#3::
IfWinExist ahk_class MozillaWindowClass
GroupActivate, FIRE, r
else
Run firefox
return
但是,某些程序没有 稳定 ahk_class
名称。例如,ArcMap.exe 应该
在 AHK 的“Windows Spy”window 中显示以下信息:
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Untitled - ArcMap
ahk_class Afx:012F0000:b:00010003:00000006:001C0BB0
知道如何引用这个具有动态 ahk_class
的应用程序吗?
我知道还有一个叫做 ahk_exe
的东西。但是,我没有发现它与方法 GroupAdd
兼容,
GroupActivate
或 IfWinExist
.
您尝试合并 ahk_exe
绝对是在正确的轨道上。 GroupAdd
(以及其他所有收到 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 再试一次。