8

Microsoft の Layered Window http://msdn.microsoft.com/en-us/library/ms997507.aspxを使用して Windows 7 で実行されるアプリがあります。このアプリは 30% の不透明度を持つように設定されており、常に一番上にあり、イベントに対して透過的です (つまり、すべてのイベントをその下のウィンドウに転送します)。これは、デスクトップを見ている「画面」と考えることができます。現在、ユーザーのどこにでもあるフィードバック レイヤーとして使用されています。

Windows 8 で同じアプリを実行してみましたが、デスクトップ モードでは期待どおりに動作することがわかりましたが、スタート メニューやその他のメトロ アプリには何も重なっていません。

メトロ アプリと Windows 8 のスタート メニューで動作する同等の常に最上位ウィンドウ モードがあるかどうかは誰にもわかりませんか?

4

3 に答える 3

14

はい、可能です。このページを見てください:

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

具体的には、コメントセクションの2番目の投稿:

一番上のウィンドウは、ユーザー補助設定の影響も受けます。Metroの上にウィンドウが必要な場合は、アクセシビリティを宣言するためにウィンドウが必要です。重要なポイントは次のとおりです。

  1. アプリケーションはuiAccess(app.manifest)を要求する必要があります

  2. アプリケーションは、「最上位」のウィンドウ配置をアサートする必要があります(プログラムまたはその他の方法で、Win32/SetWindowPosまたはWinForms/ WPFのTopmostプロパティのいずれかで)

  3. グループポリシー設定を変更せずに、信頼できる場所[ C:\Windows、、 ]にインストールする必要があります。C:\Program FilesC:\Program Files (x86)

    • 任意の場所から実行できるようにする場合は、セキュリティ設定を無効にする必要があります:「ユーザーアカウント制御:安全な場所にインストールされているUIAccessアプリケーションのみを昇格させる」。

    • HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\ValidateAdminCodeSignaturesこれはに設定するのと同じです0

  4. 上記のアプリケーションはデバッガーで実行できません

  5. .NETアプリケーションの場合:

    • マニフェストは、ビルド後のステップに埋め込む必要があります

    • アプリケーションには「遅延署名」が必要です(つまり、ビルドしてアタッチすることはできますが、組み込みのデバッガーから実行することはできません。これはMicrosoftが行うことです)。

  6. アプリケーションは、信頼できる証明書で署名する必要があります。

  7. 上記の信頼できる証明書は、信頼されたルート認証局にインストールする必要があります(これは重要です!単にインストールするだけではいけません)

于 2012-11-21T16:16:08.307 に答える
-3

私は、Metro アプリに他のアプリを重ねることはできないと確信しています。新しい Metro 環境は、1 つのフルスクリーン アプリ (または 2 つ、ただし横にスナップした場合のみ) を実行することを目的としています。さらに、何かが中間者として機能することを許可することは、あらゆる種類の機密ユーザー データを取得する可能性があるため、少し危険です。

そうは言っても、ウィンドウの「常に手前に」プロパティを設定できる場合は、スタート メニューやさまざまな Metro アプリの上に置かれたままになる可能性があります。タスク マネージャーで動作することはわかっていますが、任意のアプリで試したことはありません。ただし、イベントが昔ながらの winform アプリとは異なるため、Metro アプリでうまく機能するかどうかはわかりません。「画面」がタッチイベントの通過を許可しているかどうかを確認する必要があります。

于 2012-06-27T18:38:20.903 に答える