プログラムによってシステム トレイ領域に追加されたアイコンをユーザーが非表示にしたかどうかを知る必要があります。技術的に実現可能ですか?
更新プログラム - yowindowは、システム トレイ アイコンに現在の温度を表示します。トレイ アイコンが表示されないユーザーの天気を自動更新しないことで、サーバーの負荷を軽減したいと考えています。
プログラムによってシステム トレイ領域に追加されたアイコンをユーザーが非表示にしたかどうかを知る必要があります。技術的に実現可能ですか?
更新プログラム - yowindowは、システム トレイ アイコンに現在の温度を表示します。トレイ アイコンが表示されないユーザーの天気を自動更新しないことで、サーバーの負荷を軽減したいと考えています。
いいえ。
そして、たとえそれを持っていたとしても、あなたはこの情報をどうしますか?
(警告 - スクリーングラブを実行し、タスクバーがどこにあるかを調べ、システムトレイがどこにあるかを把握し、各アイコンを「解析」してから、ビットマップでそれぞれを独自のアイコンと比較することができると思います。しかし、実際には...)
この関連する質問を見ている間、それはあなたの価値があるかもしれません
質問への最初の編集に基づく
私はあなたのポイントを見ることができます。しかし、Windows API デザイナーの視点から見てください。それらは、「常に表示される」方法でアイコンを作成するための機能を提供しました。そして、ユーザーが自分の製品について常に知りたいと思っていることを前提として、すべての人+犬が先に進んでそこにアイコンを配置しました(注意してください、私はあなたがこのグループにいるとは主張していません).
彼らはこの暴走的な振る舞いに気づき、これらのアイコンを作成する機能を取り除くことはできませんが、ユーザーが制御できるようにしたいと考えています。
今、問題に行きます。ちょっと想像してみてください。あなたはあまり知識のない開発者です。また、アイコンが非表示になっていることを検出すると、ユーザーにアイコンを非表示にするように求めるメッセージがポップアップ表示されます。おそらく、ログインごとに1回これを行います。多分あなたは30分ごとにそれをします。これは、ユーザーがそれらのほとんどを気にしないときに、トレイに 40 個のアイコンが表示されるのと同様に、一般的なレベルのユーザーの煩わしさです。
問題は、開発者が自分のアイコンが実際に隠されているかどうかを発見できるようにする API を設計している場合です。前の段落の動作を防止しながら、どのように無害な使用を許可しますか? Windows API デザイナーのふりをして、必要な関数を書いてみてください (議論のために、迷惑な開発者は IAmEvil インターフェースなどを実装する気がないと仮定します。 IOnlyDoGood インターフェイスを喜んで実装してください...)
願わくば、あなたのアイコンが役に立ち、ユーザーが a) あなたのアイコンを表示するか、b) あなたのアプリケーションを削除してくれることを願っています。
私の知る限り、そのための API 関数はなく、問題に対する適切な解決策もありません。インストールの直後に、アイコンが非表示になっている可能性があることをユーザーに知らせるトレイからのメッセージを表示できます。役に立つというわけではありませんが、できることはそれだけです。そのメッセージを定期的に表示してユーザーを悩ませるプログラムを見てきましたが、これは本当に良いことではありません。