我有一个使用Microsoft的分层窗口http://msdn.microsoft.com/en-us/library/ms997507.aspx在Windows 7上运行的应用程序。此应用程序设置为具有30%的不透明度,它始终位于顶部,并且对事件是透明的(即:它将所有事件转发到其下的窗口)。您可以将其视为您正在通过桌面查看的“屏幕”。它目前被用作我们用户的无所不在的反馈层。
我们尝试在Windows 8上运行相同的应用程序,并注意它在桌面模式下按预期工作,但没有任何内容覆盖开始菜单和其他城域应用程序。
有没有人知道是否有一个等效的总体顶级窗口模式适用于城域应用程序和Windows 8中的开始菜单?
答案 0 :(得分:14)
是的,有可能。请看一下这个页面:
http://blogs.microsoft.co.il/blogs/pavely/archive/2012/05/16/windows-8-topmost-vs-topmost.aspx
特别是评论部分的第二篇文章:
最顶层窗口也受辅助功能设置的影响。如果您想要一个位于Metro顶部的窗口,则需要它来声明可访问性。以下是要点:
应用程序必须要求
uiAccess
(app.manifest)应用程序必须断言“最顶层”窗口定位(在Win32 /
SetWindowPos
或WinForms / WPF的Topmost
属性中,以编程方式或其他方式)如果不更改组策略设置,则必须将其安装到某个受信任位置[
C:\Windows
,C:\Program Files
,C:\Program Files (x86)
]。
如果您希望能够从任意位置运行它,则必须禁用安全设置:“用户帐户控制:仅提升安装在安全位置的UIAccess应用程序”。
< / LI>- 相同
这与将
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignatures
设置为0
所述应用程序无法在调试器中运行
如果是.NET应用程序:
清单必须嵌入构建后步骤
应用程序必须具有“延迟签名”(意味着它无法从内置调试器运行,尽管您可以构建和附加 - 这就是Microsoft所做的事情)
必须使用受信任的证书对应用程序进行签名。
- 醇>
必须将受信任的证书安装到受信任的根证书颁发机构(这很重要!它不能只是简单地安装)
答案 1 :(得分:1)
运行Windows语音识别。它是一个最顶层的窗口,它漂浮在开始菜单,桌面等上。所以它可以肯定。我正在为Windows 8开发触摸模拟器,需要实现此功能。
以下是实现此目标的步骤:
http://www.pixytech.com/rajnish/2013/05/windows-8-topmost-window/
答案 2 :(得分:-3)
我几乎肯定你没有任何其他应用程序覆盖Metro应用程序。新的Metro环境旨在运行单个全屏应用程序(或两个,但仅限于侧面)。此外,允许某些东西充当中间人是有点危险的,因为它们可以捕获各种敏感的用户数据。
话虽这么说,如果您可以设置窗口的“始终在线”属性,它可能会保留在“开始”菜单和各种Metro应用程序上。我知道它适用于任务管理器,但我从未尝试使用任意应用程序。我不知道它适用于Metro应用程序,但是,由于它们的事件与旧的winform应用程序不同。你必须看看你的“屏幕”是否允许触摸事件通过。