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