2010-03-20 145 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