Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Problemas con SendMessage (https://www.clubdelphi.com/foros/showthread.php?t=90100)

aguml 06-04-2016 12:50:22

Problemas con SendMessage
 
Hola amigos, como en la aplicacion antigatos me encontré con el problema de que para probar si funcionaba el codigo del evento WM_ENDSESSION tenia que estar cerrando la sesion de windows pues se me ha ocurrido crearme una pequeña aplicacion que me permita enviar mensajes personalizados y para ello tengo este codigo:
Código PHP:

void __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);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ButtonCloseClick(TObject *Sender)
{
   
HWND hWnd;
   
UINT message WM_CLOSE;
   
WPARAM wParam 0;
   
LPARAM lParam 0;
   
LRESULT result;
 
   
hWnd=FindWindow("TFormMain","Bloqueador anti-gato");
   
result SendMessage(&hWnd,message,wParam,lParam);
}
//--------------------------------------------------------------------------- 

Veo que el programa no se cierra ni al enviar WM_ENDSESSION, ni con WM_CLOSE y no se que hago mal. La idea es que cuando consiga hacerlo funcionar poder hacer que envie otros mensajes como WM_SETTEXT y WM_VISIBLE y otros por el estilo pero de momento me interesan estos. ¿podeis ayudarme?

roman 06-04-2016 13:44:51

Lo que te puedo decir en estos momentos es que los mensajes WM_QUERYENDSESSION y WM_ENDSESSION no los mandan las aplicaciones, los manda el sistema a las aplicaciones cuando se va a cerrar la sesión de Windows. Para cerrar la sesión de Windows desde tu aplicación necesitas algo como lo que expone Zarco Gajic aquí.

LineComment Saludos

aguml 06-04-2016 18:22:52

No no, no quería cerrar la sesión, solo enviar esos eventos. Ya lo solucioné, sobraba el & que puse delante de hWnd.


La franja horaria es GMT +2. Ahora son las 05:41:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi