【发布时间】:2015-02-25 12:59:45
【问题描述】:
我有以下 AutoHotKey 脚本来帮助我使用快捷方式在不同打开的应用程序之间切换:
^!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,因为我可以仅使用任务管理器复制此行为。如果我转到“应用程序”选项卡,右键单击目标应用程序并选择“放在前面”,同样的事情也会发生。但是,如果我选择“切换到”,它会起作用!
所以,我想我的问题是“任务管理器->应用程序->切换到”到底是做什么的,是否有可以在 AHK 中使用的等效项。我的操作系统是 Win7。
【问题讨论】:
-
您的代码在我的 PowerShell(Windows 8 64 位)上运行良好,我想知道那里有什么问题。
-
您是否以管理员身份运行 PowerShell,但以普通用户身份运行 AutoHotkey?当我这样做时(在 Windows 7 64 位机器上),我无法恢复最小化的 PowerShell 窗口。
-
以管理员身份运行 AutoHotkey 解决了以管理员身份运行的 PowerShell 窗口恢复/最小化的问题。
-
是的!就是这样!我以管理员身份运行 PowerShell 并以管理员身份运行 AHK 也解决了这个问题。谢谢!
标签: windows-7 autohotkey taskmanager