2013-07-12 214 views
0

我在我的筆記本電腦上本地使用了很多便攜式應用程序,如果我在其中一些打開時關閉了Windows,它並未正確關閉它們,有些應用程序不保存他們的設置。我試圖在將在Windows關機時執行的autohotkey腳本中使用taskkill選項,並關閉正確打開的便攜式應用程序。Autohotkey腳本--Windows上的taskkill.exe錯誤關機

我使用這個腳本:

#SingleInstance, force 
#Persistent 
DllCall("kernel32.dll\SetProcessShutdownParameters", UInt, 0x4FF, UInt, 0) 
OnExit , closepgs 
return 
closepgs: 
If (A_ExitReason="Shutdown" or A_ExitReason="Logoff") 

{ 
Run, taskkill.exe /F /IM uTorrent.exe 
} 

ExitApp` 

但是,當我關閉Windows我收到此錯誤taskkill.exe:

「應用程序未能正確初始化(0xc0000142)單擊確定以終止。應用」

如果我使用的taskkill代碼的腳本之外這樣它工作正常:

^!Home:: 
Run, taskkill.exe /F /IM uTorrent.exe 

但如果我在腳本中使用它,我收到taskkill.exe錯誤。

任何想法爲什麼會發生此錯誤?

我有Windows XP專業版SP3。

+0

我很好奇,'taskkill'如何確保您的程序正常退出? – 2013-07-12 12:50:34

+0

我從命令提示符處測試了taskkill選項,它正在關閉應用程序。當Windows關閉它們時,我收到崩潰消息,當我再次啓動它們時,它們會丟失它們的設置。 Taskkill不這樣做。 – user1800997

+0

當您嘗試運行taskkill時,系統已經部分關閉,運行像taskkill這樣的新程序不是一個選項。 – 2013-07-12 13:29:01

回答

1

使用Process, Close代替taskkill.exe

Process, Close, uTorrent.exe 

看來,作爲Windows Vista中,後來,過程是不允許在停機狀態產生新的進程。快速網絡搜索產生的唯一來源是this one
在另一個說明中,使用本地功能而不是調用程序幾乎總是可取的。特別是在使用AHK時,我建議始終尋找一個內置函數。