AutoHotKey:#IfWinActive。* Explorer *。 ?在Windows 7中

时间:2010-12-09 17:44:30

标签: macros explorer autohotkey

我正在尝试制作仅在Windows资源管理器中处于活动状态的AutoHotKey宏,但我不知道Windows 7中的资源管理器名称。我尝试了以下操作:

;Make explorer understand that Ctrl+L means goto location bar (like Firefox / Chrome)
#IfWinActive .* Explorer *.
    ^l::Send {F4}
#IfWinActive

有什么想法吗?

3 个答案:

答案 0 :(得分:13)

Autohotkey附带一个名为Window Spy的程序。您可以使用它来发现活动窗口的标题。

另外,请注意ahk_class(在帮助文件中查找ahk_class),它使用窗口类型而不是标题。 例如,在我的Win 7案例中,我可以通过指定:

将热键限制为资源管理器
#IfWinActive ahk_class CabinetWClass

答案 1 :(得分:3)

Windows资源管理器似乎在不同时间使用不同的窗口类(例如,如果正在搜索或不显示 - 至少在Win XP中)。这个脚本匹配我见过的两个类,并在资源管理器中将 Ctrl - L 映射到“聚焦地址栏”(ala Firefox):

#IfWinActive ahk_class ExploreWClass
^L::
#IfWinActive ahk_class CabinetWClass
^L::
    Send {F6}
return
#IfWinActive

答案 2 :(得分:2)

只想非常感谢Nathan解决了我的问题,这与Ola在这里的问题几乎相同。一直使用非常流行的AHK脚本“ Favorite_folders”,该脚本在单击中键时显示文件夹菜单。在XP中使用了多年没有问题-但是无法在“ Windows资源管理器”窗口中使脚本在Win7中工作。

该脚本可在所有程序的资源管理器窗口中使用,但不能在普通的“ Windows资源管理器”窗口中使用(如-开始>右键单击>打开Windows资源管理器)。花了20多个小时来解决。

Nathan建议使用“ #IfWinActive ahk_class CabinetWClass”脚本解决了我的问题。它导致我将以下脚本添加到“ Favorite_folders”脚本中-

IfWinActive ahk_class CabinetWClass

f_AlwaysShowMenu = y

显然,CabinetWClass指的是“ Windows资源管理器”窗口-而ExploreWClass指的是在打开或保存文件时出现在各种程序中的资源管理器窗口。两种情况下我都需要菜单。

在原始的“ Favorite_folders”脚本中,用于显示“ f_Hotkey =〜MButton”菜单的命令行显示为“如果#32770中的f_class,ExploreWClass,CabinetWClass;对话框或资源管理器”。出于未知原因,这仅允许菜单显示在程序的资源管理器窗口中-而不是普通的“ Windows资源管理器”窗口。

通过将以上两个命令行添加到原始的“ Favorite_folders”脚本中,我能够使菜单显示在普通的“ Windows Explorer”窗口中,但不能出现在程序的资源管理器窗口中,反之亦然。并且,如果我为“ #IfWinActive ahk_class ExploreWClass”添加了第二个类似的脚本修改,则两种浏览器窗口均未显示菜单。疯狂的东西-据我估计。

所以对我来说,解决方案是加载两个单独版本的“ Favorite_folders” AHK脚本-1)未经修改的原始Favorite_folders脚本; 2)一个单独的修改后的原始Favorite_folders脚本,其中包含受内森启发的两行“ #IfWinActive ahk_class CabinetWClass”命令。现在-菜单同时出现在两种资源管理器窗口中。不清楚为什么这些脚本不能出现在单个脚本中,但是它们可以很好地用作单独的脚本。

非常感谢Nathan和Ola提出并解决了这个问题以及我的问题。