2013-12-18 54 views
0

我想在MPC上做一個快速刪除按鈕,我已經放在Autohotkey中的代碼工作,但它似乎在第一個文件刪除後中斷。使用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鍵{下}

代碼似乎運行正常,但刪除第一個文件後,它不會再工作。

任何幫助?

+0

我很驚訝這個代碼甚至編譯。函數不應該駐留在子例程中。在'getFilenameViaProperties()'調用後直接放入'return',以便函數定義在**熱鍵例程之外**。 – MCL

+0

仍然是相同的問題,刪除第一個文件後沒有工作。 – Unorthodox

+0

我想這不像我想的那麼容易。 – Unorthodox

回答

0

如果您正在使用媒體播放器經典 - 家庭影院,這將工作:

首先配置媒體播放器經典 - 家庭影院顯示在標題欄的完整路徑前往View >>Options >>Player,並選擇Title bar部分顯示完整路徑

然後把下面的代碼在AutoHotkey的腳本:

#IfWinActive ahk_class MediaPlayerClassicW 
Delete:: 
    WinGetTitle, filePath, A 
    WinClose, A 
    WinWaitClose 
    FileRecycle %filePath% 
    Return 
#IfWinActive 

解釋代碼:

它只會媒體播放器經典的主屏幕上運行 - 家庭影院

當你按下Delete,它獲取當前標題(現在應該是正在播放的文件的完整路徑),然後關閉MPC-HC,等待它是真的關閉,然後將文件移動到回收站。