2011-09-29 190 views
3

我正在構建一個Windows服務,該服務將監視事件和磁盤活動的特定事件。發生此類事件時,我的計劃是通過客戶端應用程序向用戶發出事件警報,並在必要時提供補救措施。我(主要)完成了客戶端和服務組件,這很好用,除非客戶端應用程序沒有運行。從Windows服務啓動應用程序

總之,我正在尋找一種方法來通過CreateProcess從Windows服務啓動客戶端應用程序,以向用戶提供信息。但是,它似乎甚至無法看到客戶端應用程序的文件/文件夾執行它。我懷疑這是由於服務正在運行的憑據,或者可能是由於服務級別的限制,但我想深入瞭解一些建議之前,我深入瞭解了這一點。

所以,首先明顯的問題......我是否清楚地思考這個問題?體系結構計劃是否聽起來,還是應該看另一種方法?我寧願不重做我已經完成的任何工作,但顯然要確保計劃和過程穩固。

問題2,我面對這個模型有什麼限制?是否有服務帳戶可以允許此級別的訪問?

我顯然正在努力與此權利,所以任何想法或援助將不勝感激!

感謝, 克里斯

+0

配置爲運行的服務的安全上下文是什麼? –

回答

4

正如其他人已經提到的,你不能(容易)直接從服務啓動一個應用程序,所以我認爲解決問題最簡單的方法是創建一個登錄時啓動一個進程並使用登錄用戶的憑據運行,例如位於系統托盤中的應用程序,並打開命名管道或服務的網絡端口。如果服務需要提醒用戶,它會向該通道發送消息,然後客戶端進程可以顯示其自己的UI或啓動應用程序。使用管道或端口進行的進程間通信是處理會話0進程限制的最簡單方法。

相關問題