2012-06-05 130 views
1

我有一个Windows服务,我必须运行一个进程。但是,该过程需要管理员权限才能运行。在Process Explorer里面,我看到该服务确实运行了该进程,但该进程的用户界面没有出现。从Windows服务运行管理任务

我在这里错过了什么?这怎么能纠正?

回答

0

服务在单独的会话中运行,并带有单独的桌面。把它看作是在另一个远程桌面会话中运行的服务。任何使用从服务内部启动的GUI都将显示在该隐藏会话中,无法访问。

+0

因此,我可以从Windows服务运行另一个控制台exe,运行时将运行桌面应用程序/ – user1240679

+0

否,不幸的是不是。源自服务的所有东西都会被困在服务会话中。你想解决什么问题?你开始什么样的程序,为什么你从服务中启动它? –

+0

不幸的是,我必须启动的应用程序是桌面应用程序,并需要管理员previliges,因为我在此应用程序内部设置了本地服务器。此服务的构建是为了继续检查此桌面应用程序是否正在运行。如果没有,运行该应用程序。 – user1240679

0

如果您使用的是Windows Vista或7,则服务无法与桌面(如Windows XP)交互,并且无法像普通Windows应用程序那样打开窗口。它们默认作为本地系统帐户运行,这是完全特权帐户。

+0

因此,即使我要求我的windows serivce的administraotr previliges,它不会打开进程的窗口?该进程已经在进程管理器中运行,只是它没有显示其默认窗口 – user1240679

+0

它将启动该进程,但是您将在不同的环境中看到该窗口。您可以使用另一个Windows应用程序来为您打开进程。它可以通过服务通过管道或套接字通知。我想这就是为什么所有需要更新应用程序或其他应用程序启动的应用程序,他们在启动器部分的通知区域有一个图标。 –