Como obtener el Window Handle (HWND) de una ventana en Windows y 4 momentos epicos de MSDN
La documentación de Microsoft para desarrolladores es mala. Esta es la conclusión a la que llegue después de ver que en MSDN no sabían unicode.
Pero lo que mas gracia me causa de MSDN es cuando documentan pequeños workarounds para las limitaciones de sus productos. Este es un ejemplo: How To Obtain a Console Window Handle (HWND).
Un HWND se utiliza para acceder a propiedades de la ventana, el problema es que en viejas versiones de la API de Windows no había un método para listar las ventanas de una aplicación que retornara el HWND de estas, así que Microsoft surgió con este hack:
- Llame a GetConsoleTitle() para guardar el título de ventana de consola actual.
- Llame a SetConsoleTitle() para cambiar el título de la consola a un título único.
- Se actualizó Sleep(40) de llamada para garantizar el título de la ventana.
- Llamada a FindWindow (NULL, uniquetitle) para obtener el objeto HWND esta llamada devuelve el HWND–o NULL si no se pudo realizar la operación.
- Llamada SetConsoleTitle() con el valor se recupera del paso 1, para restaurar el título de ventana original.

¿Soy al único que le parece un hack horrible?
Otros momentos épicos de MSDN:
- Notepad tiene mas funcionalidades que vim.
- Buscar por *.* puede ser un tanto confuso (lean la aclaración al pie).
- Esconder el almanaque de Taiwan en China.
- Uno de mis preferidos: “Si Oracle te devuelve este mensaje de error, lo que tenes que hacer es no dejar de mover el mouse mientras ejecutas la consulta”.
Leave a Reply