首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为ahk_class获取AutoHotkey名称?

如何为ahk_class获取AutoHotkey名称?
EN

Stack Overflow用户
提问于 2018-08-23 04:17:01
回答 1查看 2.2K关注 0票数 0

按照此链接的指示,下面的代码工作得很好。

代码语言:javascript
复制
#IfWinActive ahk_class Notepad
a::MsgBox pressed "a"

不过,我只想在OneNote上应用热键(windows 10,MS office 2016)。在TaskManager上的详细面板上,onenote被命名为;ONENOTE.EXE,但是下面的所有代码都不起作用。

代码语言:javascript
复制
#IfWinActive ahk_class ONENOTE
a::MsgBox pressed "a"

nor

代码语言:javascript
复制
#IfWinActive ahk_class ONENOTE.EXE
a::MsgBox pressed "a"

如果我犯了什么错误,请告诉我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 05:26:10

如果窗口间谍无法检测到该窗口,则可以尝试以下操作:

代码语言:javascript
复制
FileDelete, %A_ScriptDir%\Test.txt
WinGet, id, list
Loop, %id%
{
    this_ID := id%A_Index%
    WinGetTitle, title, ahk_id %this_ID%
    If !InStr(title, "OneNote") 
        continue
    WinGetClass, class, ahk_id %this_ID%
    FileAppend, %title%`tahk_class %class%`n, %A_ScriptDir%\Test.txt
}
If FileExist(A_ScriptDir "\Test.txt")
    Run %A_ScriptDir%\Test.txt

编辑:

如果以这种方式找到的标题包含"- OneNote ahk_class ApplicationFrameWindow“(正如我在您的评论中所看到的),您可以尝试:

代码语言:javascript
复制
SetTitleMatchMode, 2 ; Title can be part of the full title

#If WinActive("- OneNote ahk_class ApplicationFrameWindow", "OneNote")

    a::MsgBox pressed "a" in OneNote

#If  ; turn off context sensitivity

作为在这个答案中

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51978247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档