2015-06-09 231 views
3

我有一個簡單的WinForms應用程序在系統托盤中運行。如果用戶嘗試從任務管理器關閉程序,是否可以密碼保護程序不被關閉?密碼保護Winforms應用程序

理想情況下,我想讓用戶不要關閉進程,但是如果Windows重新啓動,我希望它關閉而不提示。很像防病毒程序。

+0

你有沒有嘗試擺弄'FromClosing'事件?您可以使用FormClosingEventArgs的Cancel屬性控制表單關閉。將'Cancel'設置爲'false'會限制應用程序關閉。 'CloseReason'屬性表示爲什麼表單被關閉(這是一個枚舉'Systems.Windows.Forms.CloseReason')。 – fujiFX

回答

-1

您可以在YourService.Stop方法上進行驗證(假設您使用的是從ServiceBase繼承的Windows服務),但據我所知,您無法阻止用戶殺死進程,只是關閉應用程序(在Windows中有兩個不同的東西)。

0

如果用戶擁有正確的權限,他們將能夠從任務管理器中終止進程。

也就是說@fujiFX在他的評論中提到FormClosing事件是一個好的開始,比沒有好。

FormClosing事件在窗體關閉時發生。當表單關閉時,它將被釋放,釋放與表單相關的所有資源。如果您取消此活動,表單將保持打開狀態。要取消表單的關閉,請將傳遞到您的事件處理程序的的Cancel屬性設置爲true

0

這很難做,但你可以創建兩個應用程序,一個是主程序,另外兩個是助手。如果幫手死亡,那麼主應用程序重新啓動它。如果主應用程序被殺害,那麼助手重新啓動主應用程序。