Hola amigos, he estado liado con una pequeña aplicacion que realiza un hook de teclado y raton bloqueandolos. El caso es que a mis gatos les gusta mucho ponerse encima del teclado y me la lian cada vez que se ponen encima de este y el pc esta encendido. La aplicacion la tengo 100% funcional y va genial pero me di cuenta que, si tenia la aplicacion corriendo y con los hooks activos y apagaba el pc, Windows cierra todas las aplicaciones pero no es capaz de cerrar la mia. Ya me ayudaron a solucionar este problema que por lo visto mi aplicacion se negaba a cerrarse y al enviarle windows el mensaje WM_QUERYENDSESSION mi aplicacion devolvia un valor diferente de 1 con lo que Windows se quedaba a la espera y no se cerraba. Ahora que ya lo solucioné controlando ese mensaje en mi aplicacion, me he creado una pequeña aplicacion la cual su funcion seria enviar los mensajes WM_QUERYENDSESSION y WM_ENDSESSION y esta asi:
Código C++:
Ver originalvoid __fastcall TForm1::ButtonQueryEndSessionClick(TObject *Sender)
{
HWND hWnd;
UINT message = WM_QUERYENDSESSION;
WPARAM wParam = 0;
LPARAM lParam = 0;
LRESULT result;
hWnd=FindWindow("TFormMain","Bloqueador anti-gato");
result = SendMessage(&hWnd,message,wParam,lParam);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonEndSessionClick(TObject *Sender)
{
HWND hWnd;
UINT message = WM_ENDSESSION;
WPARAM wParam = 0;
LPARAM lParam = 0;
LRESULT result;
hWnd=FindWindow("TFormMain","Bloqueador anti-gato");
result = SendMessage(&hWnd,message,wParam,lParam);
}
//---------------------------------------------------------------------------
El caso es que mi aplicacion no se cierra al mandarle esos mensajes y supongo que algo hago mal. ¿podeis ayudarme? Es que para probar lo que hice en mi aplicacion tenia que estar cerrando sesion y volviendola a abrir y lo suyo es simular eso para ahorrarme esos pasos ya que mi ordenador es del plestoceno y es lentito para encender y apagar.
Ambas aplicaciones estan hechas con C++Builder 6.