目前我們在Windows啓動時在LocalService用戶下啓動了.NET WinService。該服務使用Process.Start()啓動另一個WinForms應用程序。從.NET WinService以交互式登錄用戶啓動程序
但有幾個問題在此解決方案:
- 我們不要等待一個交互式用戶登錄和應用程序的下降,因爲它試圖和初始化失敗的DirectX設備。
- 在LocalService下啓動的應用程序與Windows XP中的用戶桌面完美交互。但它在Windows 7中不起作用,因爲win7中每個用戶都有不同的圖形工作站。
- 有時我們需要運行具有當前交互式登錄用戶權限的應用程序。
是否有人知道如何等待用戶在服務中的交互式登錄並啓動具有這些用戶權限的WinForms應用程序?
我認爲這有助於解決所有問題。
如果您希望在用戶登錄時啓動具有用戶權限的應用程序,則其中一個標準自動運行選項(註冊表項或啓動文件夾)有什麼問題? – Zooba 2011-03-01 20:31:38
@Zooba,winservice的任務之一是在啓動後關注應用程序,並在啓動時重啓應用程序。 – acoolaum 2011-03-01 20:34:40
@acoolaum Windows本身提供了一些此功能(http://msdn.microsoft.com/en-us/library/cc303708.aspx),這可能是一個選項,或者應用程序可以在啓動時通知服務達到相同的效果? – Zooba 2011-03-01 20:44:41