2011-09-16 6 views
1

C#의 윈도우 작업 표시 줄의 상태 영역 (a.k.a. 시스템 트레이)에서 찾을 수있는 응용 프로그램 아이콘 좌표를 어떻게 얻을 수 있습니까?SystemTray 아이콘 좌표 - C#

+1

왜 필요한가요? – ykatchou

+0

검색 아이콘을 쉽게 찾을 수 있도록 "알림 아이콘"입니다. –

+0

NotifyIcon에서 사용자가 해당 아이콘에 매우 가깝다는 확실한 신호로 마우스 이벤트를 가져옵니다. 아이콘 중심은 Cursor.Position의 +/- 8 픽셀 내에 있으며 상황에 맞는 메뉴와 비슷합니다. –

답변

1

공정한 방법으로이를 수행 할 수 없습니다. 그러한 API는 존재하지 않습니다. 물론, 그것을 발견 할 수있는 다양한 해킹 방법이 있지만, 나는 그것에 빠지지 않을 것입니다.

일반적으로 원하는 것은 트레이 아이콘 클릭에 대한 응답으로 메뉴를 표시하는 것입니다. 이 때 Windows에서 보내는 메시지에는 클릭이 발생한 곳의 커서 좌표가 들어 있습니다. 일반적으로 클릭에 대한 응답으로 표시되는 내용을 보여주는 충분한 정보입니다.

C#에서는 MouseEventArgs의 좌표를 NotifyIcon.MouseUp에서 읽는 것으로 해석됩니다.

+0

이 나 또는 '다양한 해킹 방법'은 모호한 방법입니까? –

+0

@Felipe 나는 이런 사악한 행동을 옹호하고 싶지 않습니다. –

+0

@David Heffernan- 먼저 흥미로운 점에 감사드립니다. Shell_WotifyWindow 또는 NotifyWindowData 메서드로 할 수 있습니까? – Selo