使用uiaccess标志运行Windows服务

时间:2013-01-18 19:16:13

标签: visual-c++ windows-8

我有一个程序,我想在Windows 8的开始屏幕上方显示一个窗口。唯一的方法(我知道)要求我在清单中设置标志uiaccess = true。但是,为了使其工作,程序的用户需要是管理员。所以,我尝试this method来获得我用该程序安装的服务来启动主程序。这样,任何用户都可以在安装后运行该程序。

问题是uiaccess旗帜。似乎为了启动文章中描述的程序,但是使用uiaccess,服务本身需要启用uiaccess标志(否则CreateProcessAsUser失败)。每当我尝试使用uiaccess标志安装服务时,我都会收到错误“此过程需要提升。”

因此,主要问题是:是否有办法安装启用此标志的服务?我承认我希望答案是“不”。由于在会话0中运行的服务通常没有理由拥有此标志,因为不允许使用ui组件。但是,我希望我错了,有办法。

谢谢,如果我需要清理任何东西,请告诉我。

1 个答案:

答案 0 :(得分:3)

在CreateProcessAsUser之前和DuplicateHandle之后使用TokenUIAccess 1函数SetTokenInformation