3

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

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

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

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

4

1 回答 1

3

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

于 2013-01-19T15:51:38.620 回答