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é.