【发布时间】:2012-02-28 18:49:25
【问题描述】:
( 大家好。我对 Windows 编程很陌生,所以如果已经有人问过这个问题并且我只是不知道要搜索什么,我提前道歉,但是这个问题一直让我发疯,我知道有人可能很容易回答这个问题。)
我的公司有一个在 Windows 7 中作为服务运行的应用程序。我的任务是编写代码来更改显示设置,但我显然无法通过系统服务执行此操作。我创建了一个小型可执行文件,它在大约 5-10 行代码中将颜色深度更改为 8bpp,但是当我将此代码放入我的应用程序时,它返回成功但实际上并未成功(没有任何变化)。
在没有全面了解 Windows 编程工作原理的情况下,我设法尝试了数百万种不同的方法来使其正常工作,但无济于事。有人可以帮我找到我需要做些什么来使这个代码起作用吗?
【问题讨论】:
-
你不能。服务在与 Vista 及更高版本中的用户不同的桌面下运行,因此无法访问用户的桌面。
-
我在某处发现了一个帖子,说这是可能的。 support.microsoft.com/kb/249677 我确实试过了,但是 SetThreadDesktop 失败了,错误代码为 0。另外,有人告诉我 Spice Desktop Agent 可以完成这个,所以它一定是可能的!
-
那篇知识库文章可以追溯到服务与交互式桌面在同一会话中运行的日子,即 XP 时间。那些日子早已一去不复返了。
标签: windows api service system