【问题标题】:SetWindowPos failing to bring windows to front in Windows 8 when Windows 8 apps are running当 Windows 8 应用程序正在运行时,SetWindowPos 无法在 Windows 8 中将窗口置于最前面
【发布时间】:2013-03-28 19:56:21
【问题描述】:

我有一个用 VB.net 编写的聊天应用程序。当收到新的聊天消息时,它使用 SetWindowPos 函数将窗口设置为顶部。它也可以正常工作。但是在 Windows 8 中,当 Windows 8 应用程序(如阅读器或照片)运行时,它不会将窗口置于前面。这些应用程序将在 Windows 8 中以全屏模式运行。所以我的聊天应用程序窗口没有出现在弹出时的顶部。那么,即使这些 Windows 8 应用程序以全屏模式运行,我怎样才能让它出现。

【问题讨论】:

  • 桌面应用程序不允许跳到 Windows 应用商店应用程序前面,反之亦然。如果你想引起用户的注意,你可以raise a toast

标签: vb.net windows-8 window-position


【解决方案1】:

带有“UIAccess”的应用程序可以显示在全屏应用程序之上。看Windows 8 Layered Windows Over Metro Apps的答案。这个问题是关于分层窗口的,但这没有区别。 Eric 的问题和你的一样,他的窗口没有显示在 Metro 界面的顶部。

简而言之,您需要:

  1. 在应用程序的清单中声明 uiAccess="true"
  2. 您的可执行文件需要使用受信任的证书进行数字签名。
  3. 您的应用程序需要安装在受信任的位置,即 Program Files

【讨论】:

  • 请注意,这不是 UIAccess 功能的用途。它适用于辅助技术工具。
猜你喜欢
  • 2014-10-19
  • 2013-06-26
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多