Hola.
No suelo colgar preguntas en los foros porque por lo general buscando por internet suelo resolver los problemas que me van surgiendo pero en este caso me estoy empezando a rendir.
El caso es que estoy realizando una aplicación para un GPS chino con WinCE 5.0 y necesito saber cuando se pulsa el botón para apagar el GPS.
La cuestión es que llevo ya unos cuantos días buscando por todos los sitios y no encuentro nada.
La opción de utilizar la clase HardwareButton no me sirve porque no estoy utilizando Windows Mobile, de todas formas por si alguien está interesado dejo aquí un pequeño ejemplo de TodoPocketPC http://foro.todopocketpc.com/showthread.php?t=95282 y aquí otro de la MSDN de Microsoft http://msdn.microsoft.com/es-es/library/ms172536%28VS.90%29.aspx Además he estado haciendo pruebas con el emulador de Visual Studio en un proyecto de prueba Windows Mobile y el botón de apagado del dispositivo tampoco lo captura.
Por supuesto que también he intentado capturar la pulsación de ese botón mediante los eventos del formulario principal KeyDown, KeyPress y KeyUp pero como ya me imaginaba una cosa son las pulsaciones de teclado y otra los botones de hardware.
Estoy utilizando las API’s CeRunAppAtEvent y CreateEvent entre otras, de la librería coredll.dll para capturar eventos lanzados por el propio hardware del GPS y saber cuando se termina la sincronización de una conexión ActiveSync, si se conecta o desconecta una tarjeta SD y para detectar cuando se enciende el GPS. Pero capturar el evento que indique cuando se va a apagar, nada de nada. Paso un par de enlaces con ejemplos de funcionamiento de estas API’s por si también hay alguien interesado en su funcionamiento http://stackoverflow.com/questions/1567390/trapping-activesyncend-event y http://www.codeproject.com/KB/windows/WiMoAutostart.aspx
El caso es que poder se puede seguro, porque el GPS originalmente venía configurado con un programa que se ejecutaba automáticamente al encenderlo. Es el YFLoader.exe y seguro que a muchos de vosotros os sonará.
Cuando pulso el botón para apagar el GPS teniendo ese programa en ejecución me sale una pantalla con una opción para hacer un Sleep o un Poweroff con un contador descendiente de 30 segundos.
La cuestión es que no encuentro la forma de reproducir algo parecido. Seguro que hay alguien que ha pasado por lo mismo que yo y lo tiene resuelto.