システム トレイに表示される NotifyIcon コントロールがあります。画面上のアイコンの位置 (x, y) を見つけるにはどうすればよいですか?
ありがとう
システム トレイに表示される NotifyIcon コントロールがあります。画面上のアイコンの位置 (x, y) を見つけるにはどうすればよいですか?
ありがとう
実際にこれを行うことができます。これは、その方法とその他の多くを示すコードです。
NotifyIcon からのマウス イベントでは、単に Control.MousePosition を見てください。これには、マウスの (x,y) が含まれています。これらの (x,y) 値を使用して、フォーム/コントロールがクリックされた正確な位置に ContextMenu をフォーム/コントロールに配置するために、同じことができます。
これらの両方の良い例を次に示します。
試行錯誤の長い旅と、独自の通知アイコンロケーターの開発の後、@ zhwang SuperNotifyIconによるこの素晴らしいプロジェクトを見るまで、最高の位置アイコンを見つける方法を開発しました。このプロジェクトには、不正確な (私自身の開発のような) ものから、Windows 7 API の新しいものを使用するものまで、通知アイコンを見つける 3 つの方法があります。これが決定的な答えです。
できません。システム トレイのウィンドウ ハンドルを取得するのは難しくありません。GetClassName() は、標準の TOOLBAR コモン コントロールのクラス名である "ToolbarWindow32" を返します。64 ビット OS には 2 つあることに注意してください。次に、TB_GETBUTTONINFO のようにメッセージを送信できます。主な問題は、どのボタン ID を選択すればよいかわからないことと、返される情報にボタンの位置が含まれていないことです。
これは良いことです。ボタンをロックすることなく、ボタンが動き回ります。