Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Windows 8 Layered Windows Over Metro Apps

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.

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.

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?

like image 620
Eric Webb Avatar asked Jun 27 '12 18:06

Eric Webb


2 Answers

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:

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. The application must demand uiAccess (app.manifest)

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

  3. 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)].

    • 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”.

    • This is the same as setting HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignatures to 0

  4. Said application cannot be run in the debugger

  5. 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)

  6. The application must be signed with a trusted certificate.

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

like image 108
Lai Xue Avatar answered Nov 11 '22 20:11

Lai Xue


Run the windows speech recognition. Its a top most window which floats over start menu, desktop etc. So its possible for sure. I am working on a touch simulator for Windows 8 and needed to implement this feature.

Here are the steps to achieve this:

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

like image 25
Rajnish Noonia Avatar answered Nov 11 '22 20:11

Rajnish Noonia