C sharp - Funciones exportadas con C#

 
Vista:

Funciones exportadas con C#

Publicado por cob1979 (3 intervenciones) el 26/05/2010 23:57:08
Amigos, hace días me estoy rompiendo la cabeza, pues he querido hacer un servicio que interactue con la bandeja del sistema (o Area de notificaciones). EL mismo trabajará con las API de windows para lograr lo antes mencionado.

Hice una clase como dicen los libros con métodos estáticos.

internal static class NativeMethods
{
// Lot of API's definitions

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

........................................
}
Este es el primer método, por supuesto hay más pero ya aquí no trabaja, pues debe devolverme el manipulador de la ventana

Después invoco los métodos::

IntPtr hwndParent = NativeMethods.FindWindow("Shell_TrayWnd", null);

y cuando depuro, me dice que hwndParent = 0;
Lo cual no debe ser así...

Este mismo código lo comprobé con un proyecto formulario de Windows y hasta un proyecto simple, y todo me trabaja de maravillas, pero no sé por qué con un servicio no. Quizás los servicios necesiten otro código adicional, o no se pueda trabajar con la bandeja del sistema.

Por favor si tienen alguna sugerencia se los agradeceré.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Funciones exportadas con C#

Publicado por YamilBracho (1164 intervenciones) el 27/05/2010 21:07:28
Los servicios Windows no tienen interface al usuario. Sin embarggopuedes havcer una aplicacion que te "adminsitre" el servicio y esta si la puedes colocar en la bandeja de Windows
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funciones exportadas con C#

Publicado por cob1979 (3 intervenciones) el 27/05/2010 23:03:34
Bueno no quiero que mi servicio tenga icono, lo que deseo es que manipule los iconos de otros programas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funciones exportadas con C#

Publicado por Juan Manuel Castañeda (71 intervenciones) el 03/06/2010 20:43:45
Intente manejar los icónos mediante controles de usuario.Éstos son Window Forms para incrusrar en otros Windwos Forms.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funciones exportadas con C#

Publicado por cob1979 (3 intervenciones) el 09/06/2010 23:50:30
EL problema está en que los servicios windows trabajan con estaciones de trabajo y escritorio distintos a la del usuario.
Por lo que para lograr lo que yo quería era algo tan fácil como ir al Administrador de servicios de windows, propiedades del servicio (clic derecho+propiedades), En la pestaña Iniciar seccion seleccionar "Cuenta del sistema local" y también marcar "Permitir a los servicios que interactuen con el escritorio" y ya está listo.
Gracias a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar