3

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

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

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

谢谢你的帮助,

坦率

4

2 回答 2

1

It sounds pretty weird - you may have hit on an actual bug in Vista since it seems unlikely many other people have tried what you are doing.

First of all I'd make sure the problem doesn't exhibit this behaviour when run by the logged in user directly, just to pin it down to whether it's a Aero/Classic issue or a winstation issue.

Secondly I'd attach to the process with a debugger and make sure the message loop is getting various significant messages, particularly WM_PAINT :)

But this is obscure enough that your only option may be to open a paid support issue with Microsoft.

于 2009-04-06T12:47:21.813 回答
0

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

于 2009-04-07T11:32:59.003 回答