windows-vista - 在 Vista 上配色方案不是 Aero 时出现重影窗口

标签 windows-vista service desktop sessionid

我们有一个服务可以启动一个与登录用户交互的应用程序。我们启动的应用程序始终以我们拥有凭据的特定用户身份运行。我们执行必要的操作(获取事件 session ID、logonUser、调整 token )并在 winsta0\Default 桌面中使用 CreateProcessAsUser 启动应用程序。

如果 Vista PC 的配色方案是 Aero,则一切正常 - 但在基本和经典配色方案下,应用程序仍会启动,但没有绘制任何窗口。任务栏上有一个新任务。如果你最小化一个在后台全屏的窗口,那么你可以看到我们的幽灵应用程序的轮廓——你可以移动它,它会很好地响应键盘/鼠标输入。它只是看不见的,不是画出来的。

有谁知道会发生什么?为什么 Aero 配色方案很好,但在其他配色方案中却不行?

谢谢你的帮助,

坦率

最佳答案

这听起来很奇怪——您可能已经遇到了 Vista 中的一个实际错误,因为其他人似乎不太可能尝试过您正在做的事情。

首先,我会确保问题在由登录用户直接运行时不会表现出这种行为,只是为了确定它是 Aero/Classic 问题还是 winstation 问题。

其次,我将使用调试器附加到该进程,并确保消息循环正在获取各种重要消息,尤其是 WM_PAINT :)

但这很模糊,您唯一的选择可能是向 Microsoft 提出付费支持问题。

关于windows-vista - 在 Vista 上配色方案不是 Aero 时出现重影窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/656279/

相关文章:

networking - 使用 XMPP 协议(protocol)进行桌面共享

delphi - 在 Vista Aero 上禁用进度条动画

windows - 在 Windows 机器上练习 Unix

python - 自定义 linux 守护进程不会停止使用 "service stop"

linux - 如何获得 Linux 远程桌面(XDMCP、VNC)

php - C++ PHP 桌面和 CEF 崩溃 LoadUrl()

Delphi - Firebird - Vista 访问套接字被拒绝

.net - Windows 窗体 .NET 2.0 : How to draw a PNG icon?

android - 如何在 Android 中单击按钮时启用 BroadcastReceiver?

c# - WCF 能否处理对同一终结点的同时调用?