2010-03-20 127 views
0

我有一個用.NET 2.0編寫的文件和數據分發應用程序,我寫的類似於Steam。如何將可執行文件作爲系統服務運行?

此應用程序需要在Windows 7中運行,並且需要能夠運行和安裝需要管理員權限的應用程序。但是用戶不具有管理員權限。

我的想法是將該應用程序作爲本地系統服務運行。我想通過這樣做,應用程序可以在用戶不是管理員時執行管理員權限操作(註冊表編輯,啓動應用程序等)。

我的假設是否正確?我需要採取哪些步驟才能將此應用安裝爲本地系統服務?

管理員將安裝應用程序,但它將由沒有管理員權限的用戶運行。

提前致謝!

回答

2

只是作爲服務運行可能是不夠的;你通常不會只需要一個應用程序(特別是一個互動的應用程序),並拋出一個開關並使其成爲服務。

這方面的一般模式是分割你的應用程序:UI像往常一樣按需運行,具有用戶權限,並且還有一個持久服務運行,UI與之通信。通常,這種拆分是針對權限問題(如您的)完成的,或者即使在關閉用戶界面時也能夠執行操作。

就您而言,您可能無法使用該服務啓動應用程序,因爲該服務通常無法訪問登錄用戶的桌面。由於本地系統與桌面用戶不同,它也不會(容易)訪問註冊表中的HKEY_CURRENT_USER配置單元。

+0

如果服務不是問題的答案,那麼可用的備用方法是什麼?是否可以在Windows 7中將單個應用程序設置爲在沒有用戶交互(IE使用管理員登錄憑證)的情況下以提升的UAC模式運行(假設管理員設置了它)? – byanity 2010-03-20 15:20:05

相關問題