winform visual usar como c# winforms visual-studio-2008 notifyicon

c# - usar - notifyicon visual basic



Cómo encontrar la ubicación del icono en la bandeja del sistema (3)

No puedes. No es difícil obtener el identificador de ventana para la bandeja del sistema, GetClassName () devuelve "ToolbarWindow32", el nombre de clase del control común estándar BARRA DE HERRAMIENTAS. Tenga en cuenta que un sistema operativo de 64 bits tiene dos de ellos. Luego puede enviar mensajes como TB_GETBUTTONINFO. Los principales problemas son que no sabrá qué ID de botón elegir y la información devuelta no incluye la posición del botón.

Lo cual es para mejor, los botones se mueven sin que puedas bloquearlos.

Tengo un control NotifyIcon que aparece en la bandeja del sistema. ¿Cómo puedo encontrar la ubicación (x, y) del icono en la pantalla?

Gracias


De hecho, puedes hacer esto, aquí hay un código que te muestra cómo y mucho más.

En cualquier Evento de mouse de NotifyIcon, simplemente mira Control.MousePosition, este contiene el (x, y) del mouse. Lo mismo se puede hacer para posicionar un ContextMenu en un formulario / control exactamente donde se hizo clic en el formulario / control usando estos valores (x, y).

Un buen ejemplo de ambos está aquí:

Más aquí: http://code.msdn.microsoft.com/TheNotifyIconExample


Después de un largo viaje de prueba y error, y el desarrollo de mi propio localizador de iconos de notificación, desarrollé una forma de encontrar el mejor ícono de posición, hasta ahora, hasta que vi este increíble proyecto de @zhwang SuperNotifyIcon . Este proyecto tiene tres formas de ubicar el ícono de notificación, desde lo inexacto (como mi propio desarrollo) hasta el uso de nuevo en la API de Windows 7. Esta es la respuesta definitiva.