5

我正在尝试制作一个仅在 Windows 资源管理器中有效的 AutoHotKey 宏,但我不知道 Windows 7 中资源管理器的名称。我尝试了以下操作:

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

有任何想法吗?

4

3 回答 3

16

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

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

#IfWinActive ahk_class CabinetWClass
于 2010-12-09T18:05:25.610 回答
4

Windows 资源管理器似乎在不同的时间使用不同的窗口类(例如,搜索是否显示——至少在 Win XP 中)。该脚本与我见过的两个类匹配并映射Ctrl-L在资源管理器中“关注地址栏”(ala Firefox):

#IfWinActive ahk_class ExploreWClass
^L::
#IfWinActive ahk_class CabinetWClass
^L::
    Send {F6}
return
#IfWinActive
于 2011-07-08T17:14:44.140 回答
3

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

该脚本可以在所有程序的资源管理器窗口中运行——但不能在普通的“Windows 资源管理器”窗口中运行(如——开始 > 右键单击​​ > 打开 Windows 资源管理器)。花了20多个小时试图解决。

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

IfWinActive ahk_class CabinetWClass

f_AlwaysShowMenu = y

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

在原始的“Favorite_folders”脚本中,允许出现“f_Hotkey = ~MButton”菜单的命令行显示为——“if f_class in #32770,ExploreWClass,CabinetWClass ; Dialog or Explorer”。由于未知原因,这只允许菜单出现在程序的资源管理器窗口中——而不是普通的“Windows 资源管理器”窗口。

通过将上面的两个命令行添加到原始的“Favorite_folders”脚本中,我能够让菜单出现在普通的“Windows Explorer”窗口中 - 但不是在程序的资源管理器窗口中 - 反过来也是同样的问题。如果我为“#IfWinActive ahk_class ExploreWClass”添加了第二个类似的脚本修改——那么任何一种资源管理器窗口中都不会出现菜单。疯狂的东西——据我估计。

所以我的解决方案是加载“Favorite_folders”AHK 脚本的两个单独版本—— 1)未修改的原始 Favorite_folders 脚本;2) 一个单独修改的原始Favorite_folders 脚本,其中插入了受Nathan 启发的两行“#IfWinActive ahk_class CabinetWClass”命令。现在——菜单出现在两种资源管理器窗口中。不清楚为什么这些脚本不能出现在单个脚本中——但它们作为单独的脚本工作得很好。

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

于 2019-05-15T22:35:38.143 回答