|
本帖最后由 S8F8ry 于 2024-7-9 13:39 编辑
实现 F2 短按复制文件名,长按触发重命名操作。
AHK v2 版本:
- ; 实现 F2 短按复制文件名,长按触发重命名操作
- ; 2024-07-09
- #Requires AutoHotkey v2
- #SingleInstance Force
- Persistent
- #HotIf WinActive("ahk_exe explorer.exe")
- $F2:: {
- if KeyWait("F2", "T0.3") { ; 300ms
- F2Handler()
- } else {
- SendInput "{F2}"
- KeyWait "F2"
- }
- return
- }
- F2Handler() {
- oldClip := ClipboardAll()
- A_Clipboard := ""
- SendInput "^{Ins}"
- if !ClipWait(1) {
- ; clipboard wait timeout
- A_Clipboard := oldClip
- return
- }
- SplitPath A_Clipboard, &outFilename, , , &outNameNoExt
- if outFilename {
- A_Clipboard := outFilename
- ; 或者注释掉上面一行并移除下面一行的注释,则复制时不带文件扩展名
- ; A_Clipboard := outNameNoExt
- } else {
- ; cannot find filename
- A_Clipboard := oldClip
- }
- }
- #HotIf
复制代码
AHK v1 版本:
- ; 实现 F2 短按复制文件名,长按触发重命名操作
- ; 2024-07-09
- #Requires AutoHotkey >=1.1 <1.2
- #SingleInstance Force
- #Persistent
- #IfWinActive ahk_exe explorer.exe
- $F2::
- {
- KeyWait F2, T0.3 ; 300ms
- if ErrorLevel
- {
- SendInput {F2}
- KeyWait F2
- }
- else
- {
- F2Handler()
- }
- return
- }
- F2Handler()
- {
- oldClip := ClipboardAll
- Clipboard := ""
- SendInput "^{Ins}"
- ClipWait 1
- if ErrorLevel
- {
- ; clipboard wait timeout
- Clipboard := oldClip
- return
- }
- SplitPath Clipboard, outFilename, , , outNameNoExt
- if outFilename
- {
- Clipboard := outFilename
- ; 或者注释掉上面一行并移除下面一行的注释,则复制时不带文件扩展名
- ; Clipboard := outNameNoExt
- }
- else
- {
- ; cannot find filename
- Clipboard := oldClip
- }
- }
- #IfWinActive
复制代码 |
|