在Vista系统中,当颜色方案不是Aero时,窗口出现幽灵影像问题。

3
我们有一个服务,启动一个将与已登录用户交互的应用程序。我们启动的应用程序始终作为特定用户运行,我们拥有该用户的凭据。我们进行必要的操作(获取活动会话ID、logonUser、调整令牌),并在winsta0\Default桌面上使用CreateProcessAsUser启动应用程序。
如果Vista PC的颜色方案是Aero,一切都正常 - 但在基本和经典的颜色方案下,应用程序仍然会被启动,但没有任何窗口被绘制。任务栏上会有一个新的任务。如果你最小化一个在后台并全屏的窗口,那么你可以看到我们幽灵应用程序的轮廓 - 你可以移动它,它会很好地响应键盘/鼠标输入。它只是不可见,没有画出来。
有人有任何想法吗?为什么在其他情况下都没问题,只有在Aero颜色方案下才正常?
感谢任何帮助,
Frank
2个回答

1

听起来相当奇怪 - 你可能已经遇到了Vista中的一个实际错误,因为似乎很少有其他人尝试过你正在做的事情。

首先,我会确保问题不会在登录用户直接运行时展现出这种行为,以便将其确定为Aero/Classic问题还是winstation问题。

其次,我会使用调试器附加到进程,并确保消息循环得到各种重要消息,特别是WM_PAINT :)

但这个问题够复杂,你唯一的选择可能是向微软开启付费支持问题。


0

如果您的表单上有用户绘制的控件(或者表单本身是用户绘制的),也可能会出现问题。如果只有在 Application.RenderWithVisualStyles 为 true 时才绘制表单,那么您可能会看到这种行为。因此,请确保您还以没有这些样式的方式渲染内容。更多关于您的表单外观/行为等方面的信息将会很有帮助。


你为什么认为这是.NET WinForms? - Aardvark
因为我在那里看到了类似的行为,但这仍然只是一种假设。 - Scoregraphic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接