【问题标题】:Ghosts windows when color scheme is NOT Aero on Vista在 Vista 上配色方案不是 Aero 时出现重影窗口
【发布时间】:2009-03-17 22:26:26
【问题描述】:

我们有一项服务可以启动一个应用程序,该应用程序将与登录用户进行交互。我们启动的应用程序始终以我们拥有凭据的特定用户身份运行。我们做必要的事情(获取活动会话 ID、logonUser、调整令牌)并在 winsta0\Default 桌面中使用 CreateProcessAsUser 启动应用程序。

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

有人知道会发生什么吗?为什么 Aero 配色方案很好,而其他配色方案却不行?

感谢您的帮助,

弗兰克

【问题讨论】:

    标签: windows-vista service desktop sessionid


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      如果您的表单上有用户绘制的控件(或者您的表单本身是用户绘制的),也可能会出现问题。如果仅在 Application.RenderWithVisualStyles 为 true 时绘制表单,您可能会看到此行为。所以确保你也渲染了没有这些样式的东西。我们将不胜感激您的表单外观/行为/等的更多信息。

      【讨论】:

      • 你为什么认为这是 .NET WinForms?
      • 因为我在那里看到过类似的行为,但这仍然只是一个假设。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2014-05-08
      • 2011-09-24
      相关资源
      最近更新 更多