2012-03-27 25 views
5

Necesito ayuda para manejar programas minimizados cuando uso un archivo explorer.exe personalizado/hecho a sí mismo ... porque a menos que se maneje correctamente, los programas minimizados se reducirán a algo así como 100x50px y permanecerán en pantalla. Desarrollé un temporizador en C# para verificar procesos "icónicos", enlistar su mainWindowHandler y moverlos fuera de la pantalla con "MoveWindow". Para recuperarlos utilizo el controlador y la función "ShowWindow" que funciona IMPRESIONANTE ... pero como he dicho, se trata de un temporizador que se ejecuta constantemente, por lo que debe haber una forma más limpia/más fácil de lograrlo.Manejo de programas minimizados

¿Alguna idea? ¿Alguna forma de enganchar y levantar un evento cuando se minimiza una ventana?

* tenga en cuenta: show y movewindow son funciones de user32.dll. No estoy intentando atrapar cuando MIS formularios están minimizados, pero cuando los programas OTROS están.

Respuesta

1

Puede crear un gancho para comprobar cuándo se minimizan las ventanas.

He encontrado a CodeProject article que utiliza ganchos para comprobar cuando el usuario abre un menú de sistema (ALT +ESPACIO) en cualquier ventana y, a continuación, añade un elemento adicional a ella. Puede usar ese código para verificar cuándo el usuario pulsa el botón de minimizar y ejecutar el código que necesite allí.

El artículo de CodeProject está escrito en C++, pero puede adaptar el mismo método para C# (o use P/Invoke).