Windows 7 WinActivate在自动热键脚本中不工作
我有以下自动热键脚本,可帮助我使用快捷方式在不同打开的应用程序之间切换:Windows 7 WinActivate在自动热键脚本中不工作,windows-7,autohotkey,taskmanager,Windows 7,Autohotkey,Taskmanager,我有以下自动热键脚本,可帮助我使用快捷方式在不同打开的应用程序之间切换: ^!c::ToggleWindow("Chrome") ^!p::ToggleWindow("PowerShell") ToggleWindow(TheWindowTitle) { SetTitleMatchMode,2 DetectHiddenWindows, Off IfWinActive, %TheWindowTitle% { WinMinimize, %TheWi
^!c::ToggleWindow("Chrome")
^!p::ToggleWindow("PowerShell")
ToggleWindow(TheWindowTitle)
{
SetTitleMatchMode,2
DetectHiddenWindows, Off
IfWinActive, %TheWindowTitle%
{
WinMinimize, %TheWindowTitle%
}
Else
{
IfWinExist, %TheWindowTitle%
{
WinActivate
;;; Tried using WinMaximize/WinRestore here but same result
}
Else
{
DetectHiddenWindows, On
IfWinExist, %TheWindowTitle%
{
WinShow
WinActivate
}
}
}
}
问题是,对于某些应用程序来说,它有时只能工作(例如,PowerShell和TortoiseHG Workbench),这确实令人沮丧。对于其他应用程序(Chrome、Thunderbird),它始终有效
以下是我到目前为止的发现:
- 如果您明确最小化“有问题”的应用程序,那么您永远无法使用AHK快捷方式激活/最大化窗口。我不确定是否有其他情况会阻止快捷方式工作,但这是复制问题的一种特定方式(至少对我而言)
- 即使在快捷方式不起作用的情况下,我也可以看到任务栏中的目标应用程序图标被高亮显示。我猜它有点半途而废,激活了窗口,但实际上并没有显示它
- 我认为问题不仅仅局限于AutoHotKey,因为我可以通过任务管理器复制这种行为。如果我进入“应用程序”选项卡,右键单击目标应用程序并选择“带到前台”,同样的情况也会发生。但是,如果我选择“切换到”,它会工作
- 更改了WinActivate以还原已激活但最小化的窗口。
- 已更改WinActivate,以便在DetectThiddenWindows关闭且活动窗口隐藏时(而不是隐藏时)查找要激活的可见窗口 无所事事
谢谢,我添加了它,但没有任何更改。您的代码在我的PowerShell(Windows 8 64位)中运行良好,我想知道那里有什么问题。您是否以管理员身份运行PowerShell,但以普通用户身份运行AutoHotkey?当我这样做时(在Windows 7 64位计算机中),我无法还原最小化的PowerShell窗口。以管理员身份运行AutoHotkey可以解决以管理员身份还原/最小化PowerShell窗口的问题。是!就这样!我以管理员的身份运行PowerShell,以管理员的身份运行AHK也解决了这个问题。非常感谢。