Windows 8 分层 Windows Over Metro 应用程序 [英] Windows 8 Layered Windows Over Metro Apps

查看:31
本文介绍了Windows 8 分层 Windows Over Metro 应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have an app that runs on Windows 7 using Microsoft's Layered Window http://msdn.microsoft.com/en-us/library/ms997507.aspx. This app is setup to have a 30% opacity, it's always on top, and it is transparent to events (ie: it forwards all events to windows underneath it). You can think of it as a "screen" you are looking at your desktop through. It is currently being used to be an omnipresent feedback layer for our users.

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

We've tried running the same app on Windows 8, and notice it works as expected in desktop mode, but nothing overlays the start menu and other metro apps.

有谁知道是否有等效的始终在顶部窗口模式可以跨 Metro 应用程序和 Windows 8 中的开始菜单运行?

Does anyone know if there is an equivalent always on top window mode that works across metro apps and the start menu in Windows 8?

推荐答案

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

Yes, it is possible. Please take a look at this page:

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

特别是评论部分的第二个帖子:

Specifically the second post in the comments section:

最上面的窗口也受辅助功能设置的影响.如果你想在 Metro 顶部有一个窗口,你需要它来声明可访问性.以下是关键点:

The topmost window is also affected by the accessibility settings. If you want a window on top of Metro, you need it to declare accessibility. Here are the key points:

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

  1. The application must demand uiAccess (app.manifest)

应用程序必须声明最顶层"窗口定位(在 Win32/SetWindowPos 或 WinForms/WPF 的 Topmost 属性中,以编程方式或其他方式)

The application must assert "topmost" window positioning (either in Win32/SetWindowPos or WinForms/WPF’s Topmost property, programmatically or otherwise)

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

Without making changes to the group policy setting, it must be installed to some trusted location [C:\Windows, C:\Program Files, C:\Program Files (x86)].

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

  • If you want to be able to run it out of an arbitrary location, you must disable the security setting: "User Account Control: Only elevate UIAccess applications that are installed in secure locations".

这与将 HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignatures 设置为 0

无法在调试器中运行该应用程序

Said application cannot be run in the debugger

如果是 .NET 应用程序:

If it’s a .NET application:

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

  • The manifest must be embedded in a post-build step

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

The application must have "delayed signing" (meaning it cannot be ran from the built-in debugger, although you can build and attach – this is what Microsoft does)

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

The application must be signed with a trusted certificate.

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

Said trusted certificate must be installed to the Trusted Root Certificate Authority (this is important! It must not just simply installed)

这篇关于Windows 8 分层 Windows Over Metro 应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆