2012-02-03 212 views
3

我正在寫(win7)自助服務終端軟件,並且我希望安排「關機」蝙蝠在我的應用程序在特定用戶帳戶下退出(崩潰,「破解」或正常退出)任務調度程序。任務計劃程序應用程序退出觸發器

如何創建應用程序關閉觸發器?

如果這是不可能的,我的回退計劃是在應用程序啓動事件中開始某種監視器,但是我想如果我的假想黑客可以關閉主應用程序什麼來阻止他們關閉監視器進程?

編輯:目前該應用程序是下過度有限公司簡介裝入「運行方式」指令冒充管理員用戶。如果任務調度可能被觸發,我也可以在應用程序關閉時從管理帳戶運行此批處理文件。

回答

1

也許你可以讓你的自助服務終端應用程序創建並擁有一個全局互斥鎖,並讓監視器應用程序等待互斥鎖。監視器應用程序可以是一項服務,因此您不必擔心從您的過程中啓動監視器應用程序。當應用程序終止時,監視器將獲得互斥量的所有權,並且作爲獎勵,如果您的進程意外終止(即永遠不會正確釋放互斥量),則監視器應用程序將向其投擲AbandonedMutexException。所以你會知道這是一個正常的關機,還是碰撞/殺死。您可以在具有必要權限的帳戶下運行監控應用程序,以執行任何需要關機工作。

0

長短不一,這是你不能,一旦應用程序進程終止,你不能繼續在同一個進程中執行代碼。您的應用程序監控應用程序是一種方式。如果出現問題,我會以某種方式提醒您。如果將輪詢時間間隔設置得足夠短,在發送某種警報之前結束這兩個應用似乎並不實際(儘管可能)。

1

我有個主意。

當您的應用程序啓動時,您會在1分鐘後創建關機時間表。並且在你的應用程序中,你可以設置一個定時延遲計劃。一旦你的應用程序關閉,沒有人推遲計劃,以便機器關閉。你也應該刪除正常的退出

+0

好建議的時間表,但除非在那裏有一個的PInvoke「延遲」的關機方法(或我錯過了什麼)shutdown命令將不得不被取消並重新啓動。主應用程序可以完全負責自身,這使得實現變得簡單。 雖然我不知道有關命令的重新啓動, – 2012-02-15 12:59:32

+0

[編輯超時] - 把一個單一的(暴露)過程中的功能確實,雖然我擔心。還缺少從C#中的電流關斷opperation的知名度可能導致應用程序意外關閉。 – 2012-02-15 13:06:02

相關問題