首页 > 解决方案 > 没有活动窗口时如何创建上下文相关的热键?

问题描述

我想在没有窗口处于活动状态时创建一些热键:

在此处输入图像描述

但是没有这样的声明#IfNoWinActive,如何实现这一点?

标签: windowsautomationwindows-10autohotkeyhotkeys

解决方案


总是有一个活动窗口(将获得输入的窗口)。

例如,Win+X 菜单没有标题,但有一个隐藏的 ahk_class (LauncherTipWnd)。要检测它,您必须DetectHiddenWindows, On在脚本中添加:

#NoEnv
#SingleInstance Force
DetectHiddenWindows, On

#IfWinActive ahk_class LauncherTipWnd ; Win+X Menu

    F1:: Run notepad
    F2:: Send m ; starts the Device Manager
    
#IfWinActive

编辑:

要获取(隐藏)活动窗口的标题和 ahk_class,请运行此脚本并在该窗口处于活动状态时按 F1:

#NoEnv
#SingleInstance Force

DetectHiddenWindows, On

F1::
    WinGetTitle, ActiveTitle, A
    WinGetClass, ActiveClass, A
    MsgBox, ActiveTitle: %ActiveTitle%`nActiveClass: ahk_class %ActiveClass%
return

F2::
    WinSetTitle, A, , NewTitle
    WinGetTitle, ActiveTitle, A
    MsgBox, ActiveTitle: %ActiveTitle%
return

F3::
    WinGet, ActiveExe, ProcessName, A
    MsgBox, ProcessName: "%ActiveExe%"
return

按 Ctrl+C 复制 MsgBox 的内容。

编辑2

如果活动窗口没有标题并且没有 ahk_class 你可以试试这个:

F1:: 
    WinGetTitle, ActiveTitle, A
    WinGetClass, ActiveClass, A
    If (ActiveTitle = "" && ActiveClass = "")
        Run notepad
    ; else If WinActive("WinTitle ahk_class WinClass", "WinText", "ExcludeTitlePart")
        ; do this
    else
        Send {F1}
Return 

推荐阅读