2012-06-27 60 views
8

我有一個應用程序,運行在Windows 7使用微軟的分層窗口http://msdn.microsoft.com/en-us/library/ms997507.aspx。這個應用程序設置爲具有30%的不透明度,它始終位於頂部,並且對事件透明(即:將所有事件轉發到其下的窗口)。您可以將其視爲您正在通過桌面查看的「屏幕」。它目前被用作我們用戶的無所不在的反饋層。Windows 8分層窗口在地鐵應用程序

我們已經嘗試在Windows 8上運行相同的應用程序,並注意它在桌面模式下按預期工作,但沒有覆蓋開始菜單和其他城域應用程序。

有沒有人知道在頂層窗口模式下是否存在一個與Windows 8中的地鐵應用程序和開始菜單一樣的等價物?

+1

不可能的,地鐵的應用程序自身保護的桌面上運行。 –

+0

與傳統臺式機相比,地鐵非常受到傷害。兩者之間的相互作用幾乎不可能,也不可取。 – Luke

+0

謝謝大家。另一個數據點,窗口屏幕上的鍵盤似乎是onmi-present(甚至在開始菜單和其他地鐵應用程序)。無可否認,它可以在窗戶中使用特殊的燙髮... –

回答

14

是的,這是可能的。請在這個頁面看一看:

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

具體的第二樁在評論部分:

頂層窗口也受了輔助功能設置。如果你想要一個地鐵頂部的窗口,你需要它來聲明可訪問性。這裏的關鍵點:

  1. 應用程序必須要求uiAccess(app.manifest)

  2. 應用程序必須斷言「層次最高的」窗口位置(在Win32的/ SetWindowPos或的WinForms/WPF的Topmost財產,編程或以其他方式)

  3. 未做更改組策略設置,必須將其安裝到一些可信的位置[C:\WindowsC:\Program FilesC:\Program Files (x86)

    • 如果你想能夠運行它的任意位置,你必須禁用安全設置:「用戶帳戶控制:僅提升安裝在安全位置的UIAccess應用程序」。

    • 這是相同的設置HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignatures0

  4. 說應用程序不能在調試器

  5. 如果它是一個運行。.NET應用程序:

    • 清單必須嵌入在生成後步驟

    • 應用程序必須能夠「延遲簽名」(這意味着它不能從內置的調試運行,雖然可以構建和附加 - 這是微軟所做的)

  6. 應用程序必須使用可信證書籤名。

  7. 所述可信證書必須安裝到受信任的根證書頒發機構(這很重要!它不能只是簡單安裝)

-3

我幾乎肯定你不能有任何其他應用程序覆蓋Metro應用程序。新的Metro環境旨在運行單個全屏應用程序(或兩個,但僅限於側面)。此外,允許某些東西扮演中間人的角色有點危險,因爲他們可以捕獲各種敏感的用戶數據。這就是說,如果你可以設置窗口的「always on top」屬性,它可能會保留在開始菜單和各種Metro應用程序上。我知道它適用於任務管理器,但我從來沒有嘗試任何應用程序。但是,我不知道它對Metro應用程序會有效,但是,由於它們的事件與老式的winform應用程序不同。你必須看看你的「屏幕」是否允許觸摸事件通過。

相關問題