|  | 
 
| 本帖最后由 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
 | 
 |