ねえ、通常は最小化するのではなく、プログラムをシステム トレイに最小化するプログラムを作成しようとしています。これは可能ですか?私はグーグルで探し回っていますが、何も見つかりません。
1 に答える
システムトレイのアイコンを「通知アイコン」と呼びます。
独自のアプリケーションでこれを行うには、WinForms を使用している場合、NotifyIconクラスを使用してシステム トレイにアイコンを表示できます。次に、ウィンドウをタスクバーに表示しないように設定するだけです。
WPF を使用している場合、代替品はありません。古い WinForms NotifyIcon クラスを使用する必要があります。詳細については、このMSDN サンプルを確認してください。
別のアプリを非表示にする場合は、API 呼び出しを使用してアプリケーション ウィンドウの状態を変更する必要があります。
FindWindowを使用して、非表示にするウィンドウへのハンドルを取得できます。次に、GetWindowLongを使用してウィンドウの状態を取得できます。次に、状態からWS_EX_APPWINDOWフラグを削除し、SetWindowLongメソッドを使用して新しいスタイルを適用する必要があります。これにより、タスク バーからスタイルが削除されます。その後、Get / SetWindowStateメソッドを使用して、ウィンドウの状態を確認し、非表示/最小化できます。
システム トレイに独自のアイコンを表示するには、NotifyIcon クラスを使用する必要があります。
頑張ってください。これは私が個人的に試したことではありませんが、これらすべてのメソッド呼び出しを別の方法で使用しました。C# から API の操作を行ったことがない場合は、バージョン API メソッドの DllImports を把握するために少しグーグル検索する必要があるかもしれません。とはいえ、難しすぎてはいけません。
Crazyd22は、わずかに異なる API メソッドのセットを使用しているが、ほぼ同じ効果を達成するcodeproject の記事を見つけました。(以下のコメントを参照してください。)