2009-11-11 77 views
0

我已經在C#.net中創建了一個Windows服務,現在我希望它能夠在它關閉時提醒我。爲此,我使用Dispose/Unload事件,但現在我想要如果服務因系統關閉過程而停止,它會提醒我。在C#/ VB.net暫停系統關閉一段時間

因此,有什麼方法可以訪問系統關閉事件並在其中執行一組命令,直到命令執行系統保持活動啓動狀態,並且只有在任務完成時才關閉。

進一步增強,如果我能夠在不正確加載系統例如像AVAST啓動時掃描

針對上述急需

與問候任何幫助運行它,

ANKUR

+1

零認同的答案出來的九個問題? – Konamiman 2009-11-11 08:39:58

+0

任何解決方案.. ?? – Ankur 2009-11-11 08:43:38

+1

您可以覆蓋 protected override void OnShutdown() { base.OnShutdown(); } 和onStop()。 您可以寫入事件日誌或文件(可能是數據庫),並讓另一個程序發送郵件給管理員。 *「暫停」關機過程的其他部分是棘手的(安全明智),不推薦使用。在系統關閉時執行windows服務的OnShutdown事件。你可以寫一些代碼來做一些「保存」數據。 – PRR 2009-11-11 13:27:41

回答

1

我知道我的回答爲時已晚,但我現在只是看到這個問題:)

您可以處理sy幹事件:

Microsoft.Win32.SystemEvents.SessionEnded 

此事件將提高,當你關閉系統或從系統中註銷。處理它來做你需要的任何邏輯。

例子:

@OnStart(您服務)添加以下代碼行:

Microsoft.Win32.SystemEvents.SessionEnded += new Microsoft.Win32.SessionEndedEventHandler(SystemEvents_SessionEnded); 

然後添加事件處理程序:

void SystemEvents_SessionEnded(object sender, Microsoft.Win32.SessionEndedEventArgs e) 
     { 
      //put you logic here 
     }