我有使用FileSystemWatcher並調用相關命令(例如批處理文件)的C#服務。其中一個批處理文件需要殺死正在運行的程序,複製一些文件並再次啓動程序。 Taskkill用於擺脫程序。運行taskkill.exe的C#windows服務
批處理文件被調用,但taskkill命令永遠不會殺死一個進程(例如用戶打開的notepad.exe)。同樣的批處理文件的工作原理,如果我只是運行它時,im作爲該用戶登錄。
我試圖運行該服務作爲登錄用戶帳戶(記事本打開的同一個帳戶)無濟於事 - 默認是本地系統。
我不能硬編碼的用戶名(但我認爲,模擬配置,但有點不願意存儲用戶的密碼)。
有什麼建議嗎?
您可以調試以查看您正在獲取的內容嗎?它拋出一些錯誤/異常? – Microtechie
不能說,作爲本地系統運行。我嘗試管道輸出如下所示:taskkill/IM notepad.exe> C:\ Users \ user \ Desktop \ testoutput.txt - 文件已創建,但它是空的。如果我通過雙擊批處理文件運行命令,將生成以下輸出: SUCCESS:將終止信號發送到PID XXXX的進程「notepad.exe」。 - 用於每個正在運行的記事本。 – zaitsman
我不認爲批處理腳本中的失敗會引發異常。 –