アプリケーションを Windows ガジェットのようにデスクトップ レベルに設定したいと考えています。これを達成することは可能ですか?
つまり、デスクトップで実行したいボーダレスアプリケーションがあります。
オプションを見つけようとしましたが、達成したいこととは反対の「常に一番上」しか見つかりませんでした。
アプリケーションを Windows ガジェットのようにデスクトップ レベルに設定したいと考えています。これを達成することは可能ですか?
つまり、デスクトップで実行したいボーダレスアプリケーションがあります。
オプションを見つけようとしましたが、達成したいこととは反対の「常に一番上」しか見つかりませんでした。
古き良きSetWindowPosは、アプリケーションを順序の最後に配置する HWND_BOTTOM をサポートしています。C# で使用するには、PInvoke.Netを参照してください。
バックグラウンドでサービスとして実行されるようにアプリを作成してから、実際のWindowsガジェットをフロントエンドとして実装しますか?
いつものトップと同じようにする方法はないと思います。アプリケーションをアイコンの下で実行しますか? 本当にバックグラウンド アプリケーションを実行する唯一の方法は、explorer.exe を置き換えることですが、アイコンとタスク バーが表示されなくなります。
XBAP を作成することで、WPF を使用して実際の Windows ガジェットを実装できます。XBAP をロードする IFRAME のみを含む gadget.xml ファイルと .html ファイルを追加するだけです。そうすれば、WPF アプリケーションは実際にはガジェットになり、自動的にすべてのルールに従います。
もう 1 つのオプションは、Windows Sidebar Stylerを使用することです。これには、追加のソフトウェアをインストールする必要がありますが、コード署名証明書、ユーザー承認などなしでは XBAP サンドボックス内では実行できないことも実行できます。
3 番目のオプションは、HTML で認識可能なもの (特定の背景色など) を使用するガジェットを作成することです。次に、.exe の起動時に、探している属性を持つ hWnd をエクスプローラーでスキャンし、自分自身を挿入します。 Explorer.exe プロセスを開き、ウィンドウをその子として設定します。
3 番目のオプションのバリエーションは、Explorer.exe に挿入するのではなく、Z インデックスと場所を (SetWindowPos を使用して) 維持して、見つけた hWnd の Z インデックスと場所を追跡することです。
非常に多くの選択肢...