8

我有一个使用 Microsoft 的分层窗口http://msdn.microsoft.com/en-us/library/ms997507.aspx在 Windows 7 上运行的应用程序。此应用程序设置为具有 30% 的不透明度,它始终位于顶部,并且对事件是透明的(即:它将所有事件转发到其下方的窗口)。您可以将其视为您正在查看桌面的“屏幕”。它目前被用作我们用户的无所不在的反馈层。

我们尝试在 Windows 8 上运行相同的应用程序,并注意到它在桌面模式下按预期工作,但没有覆盖开始菜单和其他 Metro 应用程序。

有谁知道是否有一个等效的始终在顶部窗口模式适用于 Metro 应用程序和 Windows 8 中的开始菜单?

4

3 回答 3

14

是的,有可能。请看一下这个页面:

http://blogs.microsoft.co.il/blogs/pavely/archive/2012/05/16/windows-8-topmost-vs-topmost.aspx

特别是评论部分的第二篇文章:

最上面的窗口也受可访问性设置的影响。如果您想要在 Metro 之上的窗口,您需要它来声明可访问性。以下是关键点:

  1. 应用程序必须要求uiAccess(app.manifest)

  2. 应用程序必须断言“最顶层”窗口定位(在 Win32/SetWindowPos或 WinForms/WPF 的Topmost属性中,以编程方式或其他方式)

  3. 在不更改组策略设置的情况下,必须将其安装到某个受信任的位置 [ C:\Windows, C:\Program Files, C:\Program Files (x86)]。

    • 如果您希望能够在任意位置运行它,则必须禁用安全设置:“用户帐户控制:仅提升安装在安全位置的 UIAccess 应用程序”。

    • 这与设置HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignatures0

  4. 所述应用程序无法在调试器中运行

  5. 如果是 .NET 应用程序:

    • 清单必须嵌入在构建后步骤中

    • 应用程序必须具有“延迟签名”(这意味着它不能从内置调试器运行,尽管您可以构建和附加 - 这是微软所做的)

  6. 应用程序必须使用受信任的证书进行签名。

  7. 所述受信任的证书必须安装到受信任的根证书颁发机构(这很重要!它不能只是简单地安装)

于 2012-11-21T16:16:08.307 回答
1

运行 windows 语音识别。它是浮动在开始菜单、桌面等上的最顶层窗口。所以它肯定是可能的。我正在开发适用于 Windows 8 的触摸模拟器,需要实现此功能。

以下是实现此目的的步骤:

http://www.pixytech.com/rajnish/2013/05/windows-8-topmost-window/

于 2013-05-01T06:18:15.360 回答
-3

我几乎肯定你不能让任何其他应用程序覆盖 Metro 应用程序。新的 Metro 环境旨在运行单个全屏应用程序(或两个,但只有在靠边时才能运行)。此外,允许某些东西充当中间人有点危险,因为它们可以捕获各种敏感的用户数据。

话虽如此,如果您可以设置窗口的“始终位于顶部”属性,它可能会一直放在“开始”菜单和各种 Metro 应用程序上。我知道它适用于任务管理器,但我从未尝试过使用任意应用程序。但是,我不知道它是否适用于 Metro 应用程序,因为它们的事件与老式的 winform 应用程序不同。您必须查看您的“屏幕”是否允许触摸事件通过。

于 2012-06-27T18:38:20.903 回答