¿Cómo saber cuándo EnumWindows finaliza su listado de ventanas? Porque EnumWindows recibe una función de devolución de llamada como parámetro, y sigue llamándola hasta que no se enumeren más ventanas.¿Cómo saber cuándo EnumWindows finaliza su listado de ventanas?
5
A
Respuesta
9
EnumWindows()
bloques mientras se lleva a cabo la enumeración. Cuando EnumWindows()
termina de enumerar a través de las ventanas, devuelve un BOOL
.
El siguiente fragmento de código:
#include <windows.h>
#include <cstdio>
BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lparam)
{
int& i = *(reinterpret_cast<int*>(lparam));
++i;
char title[256];
::GetWindowText(hwnd, title, sizeof(title));
::printf("Window #%d (%x): %s\n", i, hwnd, title);
return TRUE;
}
int main()
{
int i = 0;
::printf("Starting EnumWindows()\n");
::EnumWindows(&MyEnumWindowsProc, reinterpret_cast<LPARAM>(&i));
::printf("EnumWindows() ended\n");
return 0;
}
me da una salida como esta:
Starting EnumWindows() Window #1 (<hwnd>): <title> Window #2 (<hwnd>): <title> Window #3 (<hwnd>): <title> <and so on...> EnumWindows() ended
Así EnumWindows()
definitivamente enumera de manera sincrónica.
Cuestiones relacionadas
- 1. WebSQL HTML5: ¿cómo saber cuándo finaliza una transacción de db?
- 2. ¿Cómo puedo saber cuándo finaliza un gesto de pellizco (UIGestureRecognizer)?
- 3. AudioTrack: cómo saber cuándo comienza/finaliza un sonido.
- 4. ¿Por qué EnumWindows devuelve más ventanas de las que esperaba?
- 5. WCF: ¿Cómo saber cuándo termina una sesión?
- 6. ¿Cómo puedo enumerar las ventanas abiertas (~ EnumWindows) de otra sesión de usuario?
- 7. ¿Cuándo cerrar la conexión de db en android? Cada vez que finaliza su operación o después de su aplicación, salga
- 8. saber cuándo llamar persistir
- 9. Java: Producer = Consumer, ¿cómo saber cuándo parar?
- 10. finaliza una función setTimeout antes de su hora configurada
- 11. ¿Cómo saber cuándo una actividad termina un pase de disposición?
- 12. ¿Cómo puedo detectar cuándo se abren nuevas ventanas y/u obtener una lista de ventanas abiertas?
- 13. Delphi XE2 EnumWindows no funciona correctamente
- 14. ¿Cómo saber cuándo termina el TTS?
- 15. Cómo saber cuándo Windows está inactivo
- 16. ¿Cómo puedo saber cuándo NSTextView pierde foco?
- 17. writeToFile cómo saber cuándo se completó
- 18. ¿Cómo saber cuándo Big O es logarítmico?
- 19. ¿Puede Javascript saber su IP?
- 20. ¿Cómo determinar cuándo comienza o finaliza el horario de verano en una ubicación específica en Python?
- 21. ¿Cómo saber cuándo termina un servicio de finalización entregando resultados?
- 22. Saber cuándo un usuario está buscando en su sitio en el navegador vs otra pestaña/aplicación
- 23. iPhone SDK: ¿cómo puedo saber cuándo ha finalizado una animación?
- 24. listado grupo yum
- 25. wpf ¿cómo saber cuándo ha finalizado el enlace de datos?
- 26. ¿Cómo puedo saber cuándo ha llegado el último OutputDataReceived?
- 27. ¿Qué son estas ventanas? .. "M" y "IME predeterminado" (de GetWindowText)
- 28. ¿Cómo detectar cuando finaliza la aplicación?
- 29. Cómo saber cuándo el usuario toca el botón Aceptar de la última alerta de StoreKit "Gracias. Su compra fue exitosa"?
- 30. Necesita saber cuándo se cierra la aplicación
como probé, no bloquea, solo después de alrededor de 1> 2 segundos, la lista de ventanas está completamente enumerada, ¿alguna otra idea? – jondinham
@Paul: Debe haber un error. ¿Puedes publicar el código que usa 'EnumWindows()'? También lo he probado y bloquea y vuelve solo después de que termine de enumerar a través de las ventanas. –
he comprobado nuevamente, mi error. sí bloquea. :) – jondinham