Activar una DLL inyectada en Windows
Pregunta
Actualmente estoy usando SetWindowsHookEx para inyectar mi DLL en otro proceso, sin embargo, no se carga de inmediato. Me di cuenta de que si hago clic manualmente en la ventana, entonces se cargará, así que supongo que está esperando algún tipo de mensaje para poner en marcha la activación. Actualmente lo estoy activando con un
SetForegroundWindow(otherAppHwnd);
SetForegroundWindow(myAppHwnd);
Pero esto parece un truco, y no siempre funciona (es decir, el otroAppHwnd está minimizado en la barra de tareas.
¡Cualquier indicador sería genial!
Editar : es un gancho CBT
Solución 2
Parece que esto no es posible.
Entonces, en lugar de forzar mi camino alrededor de esto, decidí simplemente rodar con él y hacer que mi diseño sea capaz de manejar esto.
Otros consejos
He usado con éxito esto:
SendMessage(otherAppHwnd, WM_NULL, 0, 0);
para lograr lo que desea, pero solo con ganchos de nivel inferior como WH_GETMESSAGE, nunca un gancho CBT. Podría funcionar. 8-)