このデフォルトの動作は、非常に面倒です。私はおそらく、ほとんどのユーザーに対してデフォルトで「通知のみを表示」することをお勧めします。「通知領域」の目的は(名前が示すとおり)ユーザーに通知を表示することです。企業が自分のプログラムを「宣伝」するが、何もしない、役に立たないアイコンを置く場所であってはなりません。
そうは言っても、パワーユーザーとして、どのトレイアイコンが私にとって重要で、どのトレイアイコンを非表示にしたいのかをよく考えています。デフォルトでは常にアイコンが常に表示されるようにしたいのですが、OPが要求したように、個々のアイコンを手動で非表示にする機能があります。多くのトレイアイコンは通知を提供するだけでなく、リアルタイムステータスや設定やコントロールへのクイックアクセスなども提供します。そのため、新しい通知アイコンの動作を許可する設定がない(レジストリ内であっても)ことに失望しますデフォルトで「アイコンと通知を表示」になります。
私はそのような設定を見つけることができませんでした。Jamesが上記で言及したレジストリキーはおそらく有用ではありません。1つには、HKLM
マシン全体の設定であるの下にあります。ただし、トレイアイコンの動作はユーザー固有ですが、HKCU
そのキーに相当するものはありません。
関連するレジストリキーは、実際HKCU\Software\Classes\Local Settings\Microsoft\Windows\CurrentVersion\TrayNotify
にはIconStreams
値に含まれています。このキーはバイナリレジストリキーです。これには、通知アイコンを追加した実行可能ファイルへのフルパス、各アイコンによって表示される最後のツールチップ、およびそれぞれの「表示」設定を保存するデータのブロックがいくつか含まれています。
したがって、新しいアイコンのデフォルトの動作を変更する方法は見つかりませんでしたが、上記のレジストリキーのバイナリ形式を決定する方法、または(ドキュメント化されていない)を使用して同じ情報にアクセスする方法に関するいくつかの良い参照を見つけることができました)ITrayIcon
インターフェイス。これらのメソッドは、個々のトレイアイコンの動作をプログラムで検出および変更できるユーティリティを生成するために使用されました。
この情報にプログラムでアクセスできるため、トレイアイコンのリストを定期的に監視し、検出された新しいアイコンの動作を変更する小さなユーティリティプログラムを作成するのは難しくありません。その後、アイコンの名前を記録し、それを再度変更しないため、ユーザーが手動で行った変更は上書きされません。
個々のトレイアイコンの動作を検出および変更するためのコード例を次に示します。
どちらも、新しい通知アイコンの動作を監視および変更する小さなユーティリティを作成するために必要なタスクを実行する非常に良い例を示しています。ある時点でそのユーティリティの作成に取り掛かった場合は、ここに投稿します。