2011-09-16 9 views
1

C#のウィンドウタスクバーのステータスエリア(a.k.a.システムトレイ)にあるアプリケーションアイコンの座標を取得するにはどうすればよいですか?SystemTray Icon Coordinate - C#

+1

なぜこれが必要ですか? – ykatchou

+0

「通知アイコン」で、検索が簡単になります。 –

+0

NotifyIconからマウスイベントを受け取ると、そのアイコンの近くにユーザーがいることを確認します。アイコンの中心はCursor.Positionから+/- 8ピクセル以内にあり、コンテキストメニューのようなものであれば十分です。 –

答えて

1

公正な手段でこれを行うことはできません。そのようなAPIは存在しません。もちろん、それを見つけるための様々なハッキーな方法がありますが、私はそれに着くことはありません。

通常、トレイアイコンをクリックするとメニューが表示されます。このときにWindowsから送信されるメッセージには、クリックが発生した場所のカーソル座標が含まれています。これは通常、クリックに応じて表示する内容を示す十分な情報です。

これは、MouseEventArgsの座標をNotifyIcon.MouseUpから読み取ることに変換されます。

+0

は私ですか、「様々なハッピー・ウェイ」はあいまいですか? –

+0

@Felipe私はそのような悪質な活動を主張したくない。 –

+0

@David Heffernan-まず、面白いことに感謝します.Shell_WotifyWindowメソッドまたはNotifyWindowDataメソッドで可能ですか? – Selo