2012-04-07 214 views
2

我的應用程序需要在每天午夜時間重新啓動。對於這份工作,根據我的說法,任務調度程序將是理想的使用方式,但我一直無法找到如何在C#中使用任務計劃程序API(無需使用外部庫)Windows任務計劃程序C中的計劃任務#

一旦啓動來自任務計劃程序的應用程序已完成,我還希望提供如何在某個特定時間自動關閉應用程序的建議(即使應用程序在特定時間可能沒有響應,顯示某些錯誤消息框或由於某些問題而不工作)

回答

3

嗯,我想你不知道schtasks命令。
您可以簡單地打開命令提示符並鍵入schtasks /?以查看可用選項。
這裏需要的是/create。當然這個選項需要一系列參數來配置你的計劃任務。但在最後,你可以解決所有呼叫:

Process.Start("schtasks", commandParams); 

對於密切過程的一部分,我用了一個名爲pskill小工具來自微軟的Mark Russinovich編寫的Sysinternals suite找到。這也可以在批處理文件集內調用爲計劃任務。

編輯:從psshutdown改爲pskill(?你只需要關閉應用右)

+0

感謝您的回覆。我嘗試通過命令行手動設置此任務,並以管理員身份運行'cmd'後,我可以在開始時創建此任務'schtasks/create/tn「MyApp」/ tr c:\ app.exe/sc '用'成功創建任務'的信息。顯然,我的應用程序需要管理員權限才能運行,並且當我重新啓動計算機時,該應用程序無法運行。我檢查了schticks/query,MyApp狀態顯示爲'無法啓動'。對此有何建議? – user1240679 2012-04-07 10:18:36

+0

我不認爲這是因爲這個管理員權限。我嘗試了另一個不需要管理員previliges的簡單應用程序,但是當我在重新啓動後檢查schtasks/query時,它提供了'Could not start'狀態。 – user1240679 2012-04-07 10:43:51

+0

我將任務更改爲登錄,現在運行良好。 :-) – user1240679 2012-04-07 11:31:47

2

我建議你寫一個服務來處理這個問題。另外,它爲什麼需要重啓

然而,如果必須使用任務計劃程序,嘗試這樣的:

schtasks /create /SC DAILY /TN AppName /TR AppExecutablePath /ST 0 
0:00 /ET TIMEFORENDTASK 

您可以直接在批處理腳本中鍵入這一點,當用戶安裝該應用程序運行批處理腳本,然後把這在卸載批處理腳本中:

schtasks /delete /TN AppName 
+0

感謝您的回覆。我嘗試使用schtasks命令通過命令行手動設置此任務,並以管理員身份運行cmd後,我可以創建此任務schtasks/create/tn「MyApp」/ tr c:\ app.exe/sc on從消息開始成功創建任務。顯然,我的應用程序需要管理員權限才能運行,並且當我重新啓動計算機時,該應用程序無法運行。我檢查了schticks/query,MyApp狀態顯示爲'無法啓動'。對此有何建議? – user1240679 2012-04-07 10:21:57

+0

可能需要傳遞管理員的用戶名和密碼。看到標誌/ U/P和/ RU – Steve 2012-04-07 10:28:32

+0

我不認爲這是因爲這個管理員權限。我嘗試了另一個不需要管理員previliges的簡單應用程序,但是當我在重新啓動後檢查schtasks/query時,它提供了'Could not start'狀態。 – user1240679 2012-04-07 10:43:40