NotifyIcon Necesita un formulario?

31/08/2004 - 15:50 por Ignacio X. Domínguez | Informe spam
Saludos. Cual es la mejor manera de ejecutar un programa sin formulario?
Necesito unicamente mostrar un NotifyIcon que responda al mouse (Click,
DoubleClick, Mostrar un menu). Gracias

Preguntas similare

Leer las respuestas

#6 Guillermo guille
01/09/2004 - 07:09 | Informe spam
la verdad es que no se cómo lo hace, pero funciona...
Aunque lo mejor es, como dice Jose Miguel, usar un formulario y ocultarlo, pero
tanto el menú contextual como el icono de notificación funciona con una
aplicación de consola, siempre que agregues a las referencias el
System.Windows.Forms.

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"Ignacio X. Domínguez" wrote in message
news:
Gracias por sus respuestas. Tengo otra duda. Tengo entendido que el control
NotifyIcon hace llamadas a Shell_NotifyIcon de la API de windows. Esta
llamada necesita del Handle de un formulario. Debo entender entonces que el
NotifyIcon utiliza un formulario escondido? Posibliemente fuera de la region
visible del escritorio (digamos en x=-150 y=-150)? En caso contrario, ¿qué
metodo usa NotifyIcon para llamar a Shell_NotifyIcon?

Gracias de antemano

Respuesta Responder a este mensaje
#7 José Miguel Torres
01/09/2004 - 10:49 | Informe spam
Buenas:

Perdón por la confusión, fuí muy drástico ;-)
Ciertamente, con referenciar System.Windows.Forms ya funcionaría. Al ser un
Control par Windows lógicamente la utilización de Form es la mejor manera,
aunque no la única...

saludos!

José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es
http://jmtorres.blogspot.com


"Guillermo 'guille'" escribió en el mensaje
news:edIJYE#
realmente NO NECESITA un form para usar el notifyIcono ni el context menú,


lo
que SI necesita es una referencia a System.Windows.Forms.

Aunque desde luego, la mejor forma de usar el icono de notificación es


como
indicas, tener un form y si no quiere mostrarlo, pues lo oculta y asunto
arreglado... así la vida será más fácil... ;-)))

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"José Miguel Torres" <jtorres_diaz~~ARROBA~~terra.es> wrote in message
news:
> Si quieres ejecutar un programa sin form debes crear un app de consola,
> ahora bien olvídate del NotifyIcon, éste igual que el menú contextual y
> demás controles NECESITA de un form, si quieres ejecutar una app "sin


forms"
> oculta el form principal.
> Saludso
>
> José Miguel Torres
> jtorres_diaz~~ARROBA~~terra.es
> http://jmtorres.blogspot.com
>
> "Ignacio X. Domínguez" escribió en el mensaje
> news:u#K$
>> Saludos. Cual es la mejor manera de ejecutar un programa sin


formulario?
>> Necesito unicamente mostrar un NotifyIcon que responda al mouse (Click,
>> DoubleClick, Mostrar un menu). Gracias
>>
>>
>
>


Respuesta Responder a este mensaje
#8 Guillermo guille
01/09/2004 - 16:12 | Informe spam
Perdón por la confusión, fuí muy drástico ;-)


algunas veces lo somos cuando la gente debería usar las cosas para las que han
sido pensadas...

Ciertamente, con referenciar System.Windows.Forms ya funcionaría. Al ser un
Control par Windows lógicamente la utilización de Form es la mejor manera,
aunque no la única...


desde luego, es la recomendada y la que a la larga daría menos problemas. al
fin y al cabo, (supongo), el propio .NET lo usará...

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"José Miguel Torres" <jtorres_diaz~~ARROBA~~terra.es> wrote in message
news:
Respuesta Responder a este mensaje
#9 Octavio Hernandez
01/09/2004 - 17:09 | Informe spam
Ignacio,

Yo creo que efectivamente el componente NotifyIcon se apoye en un formulario
oculto. Esa es la implementación que he visto en algunos componentes para
Delphi.
Sería interesante ver si el código fuente de Rotor ofrece una implementación
de esa clase.

En este artículo el autor dice que efectivamente el NotifyIcon uiliza una
ventana oculta. El ofrece una iplementación que (dice) es más completa que
la de .NET:

http://codeproject.com/cs/miscctrl/...iconex.asp

Slds,

Octavio

"Ignacio X. Domínguez" escribió en el mensaje
news:
Gracias por sus respuestas. Tengo otra duda. Tengo entendido que el


control
NotifyIcon hace llamadas a Shell_NotifyIcon de la API de windows. Esta
llamada necesita del Handle de un formulario. Debo entender entonces que


el
NotifyIcon utiliza un formulario escondido? Posibliemente fuera de la


region
visible del escritorio (digamos en x=-150 y=-150)? En caso contrario, ¿qué
metodo usa NotifyIcon para llamar a Shell_NotifyIcon?

Gracias de antemano

"Guillermo 'guille'" wrote in message
news:
> No, también funciona con las aplicaciones de consola.
> Simplemente añade las referencias a System.Windows.Forms y


System.Drawing
> (para mostrar un icono) y úsalo de la forma habitual:
>
> System.Windows.Forms.NotifyIcon ni = new
> System.Windows.Forms.NotifyIcon();
> ni.Text = "prueba";
> ni.Icon = new System.Drawing.Icon(@"..\..\App.ico");
> // añadir los menús y los eventos correspondientes
> ni.Visible = true;
>
>
> Nos vemos.
> Guillermo
> Microsoft VB MVP desde 1997
> Te invito a mi sitio dedicado al VB y más...
> http://www.elguille.info/
> http://www.mundoprogramacion.com/
> (puede que el correo usado sea anti-spam)
>
>
> "Ignacio X. Domínguez" wrote in message
> news:u%23K$
>> Saludos. Cual es la mejor manera de ejecutar un programa sin


formulario?
>> Necesito unicamente mostrar un NotifyIcon que responda al mouse (Click,
>> DoubleClick, Mostrar un menu). Gracias
>>
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida