不依赖于发送 F2 键代码来执行文件重命名的 AutoHotKey 函数

AutoHotKey function to perform File-Rename without relying on sending F2 key code

我想定义一个自定义热键来重命名文件资源管理器中的选定文件。所以我的新热键的行为应该与默认情况下的 F2 键完全一样。也就是说,当我按下热键时,文件名应该是可编辑的,允许我输入一个新名称。但是,我无法使用 F2 键 windows 执行此操作。

原因是我将默认热键用于其他用途。我经常 运行 一个应用程序(与 AutoHotKey 无关),其中 UI 中的按钮是使用所有 F 键的键钩触发的。我能找到的唯一建议是让我的自定义热键使用 'send' 来提高与该操作关联的默认键码。这行不通,因为我正在将这些热键用于其他用途。我需要的是一种解决方案,可以使文件重命名 而无需 发送 F2 键码。

 ^+!R::
Send {F2} ;This won't work for me
return

其实可以使用原来的热键,只要在你不想被发送命令触发的热键前加上$即可。使用特定于应用程序的热键也是减少可能冲突的好主意。
试试这个:

#If winActive("ahk_exe Explorer.EXE") 

^+!R::
    send {F2}
return

$F2::
    send {down}
return  

如果您有一个应用程序可以全局无条件地扫描 F2 键,并且您不能重新定义它,那么您在 AHK 中就无能为力了。所以理想情况下你应该摆脱那个应用程序,并使用例如AHK 以获得相同的功能,或找到一些解决方法。
在这种特殊情况下,最简单的解决方法是重命名文件的替代方法:

^+!R::
    send {AppsKey}
    sleep 100
    send {m}
return