Autohotkey 使用自动热键删除Media Player Classic中的播放文件

Autohotkey 使用自动热键删除Media Player Classic中的播放文件,autohotkey,Autohotkey,我正在尝试在MPC上创建一个快速删除按钮,我在Autohotkey中添加了一个代码,可以正常工作,但在删除第一个文件后,它似乎会中断 #NoTrayIcon #Persistent #HotkeyInterval,100 #NoEnv SetKeyDelay, –1 SetTitleMatchMode, 2 ; Makes matching the titles easier SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance F

我正在尝试在MPC上创建一个快速删除按钮,我在Autohotkey中添加了一个代码,可以正常工作,但在删除第一个文件后,它似乎会中断

#NoTrayIcon
#Persistent
#HotkeyInterval,100
#NoEnv
SetKeyDelay, –1
SetTitleMatchMode, 2 ; Makes matching the titles easier
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance Force

Del::
getFilenameViaProperties()

getFilenameViaProperties(){

  WinGetTitle, Title, A
  WinGet, activePID, PID, A
  PostMessage, 0x111 , 814  , , , ahk_pid %activePID%  ;WM_COMMAND = 0x111 & wParam found 
  WinWait, Properties ahk_class #32770 ahk_pid %activePID%
  Send ^{tab}
  ControlGetText, fileName, Edit1
  ControlGetText, directoryName, Edit6
  WinClose
  loc = %directoryName%\%fileName%
  Msgbox,4,, DELETE? `n %loc%,20
  IfMsgBox, Yes
    {Send +{Down}
    Sleep 200
    FileDelete, %loc%
    Sleep 700
        IfExist, %loc% 
        {Send ^{c}
        Sleep 200
        FileRecycle, %loc%
        }
  }
}  
return
注:

热键=删除按钮

下一个文件=Shift{Down}

代码似乎运行良好,但删除第一个文件后,它将无法再次工作

有什么帮助吗?

如果您使用的是Media Player Classic-家庭影院,这将起作用:

首先配置Media Player Classic-Home Cinema以在标题栏中显示完整路径,方法是转到
查看
>
选项
>
播放器
,然后在
标题栏
部分选择显示完整路径

然后将以下代码放入自动热键脚本中:

#IfWinActive ahk_class MediaPlayerClassicW
Delete::
    WinGetTitle, filePath, A
    WinClose, A
    WinWaitClose
    FileRecycle %filePath%
    Return
#IfWinActive
解释代码:

它将只在媒体播放器经典家庭影院的主屏幕上运行


当您按下“删除”按钮时,它会获取当前标题(现在应该是正在播放的文件的完整路径),然后关闭MPC-HC,等待它真正关闭,然后将文件移动到回收站。

媒体播放器经典-家庭影院(MPC-HC)具有此内置功能,您可以自己设置热键(默认值为del)。

我很惊讶这段代码竟然可以编译。函数不应该驻留在ing子例程中。将
返回值直接放在
getFilenameViaProperties()调用之后
,因此函数定义在热键例程之外。仍然是同一个问题,在删除第一个文件后就不起作用。我想这并不像我想的那么容易。我建议你做一些调试,因为没有其他人可以帮你做。它在哪里失败?为什么失败?是否有无休止的等待?