Detectar el shutdown de windows

Iniciado por gxg, 6 Marzo 2011, 19:22 PM

0 Miembros y 1 Visitante están viendo este tema.

gxg

Hola, estoy utilizando este codigo para que mi programa detecte cuando se esta apagando windows, pero no me funciona y no se cual puede ser el error.

#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK YourWindowProc(HWND hWnd, UINT uMsgId, WPARAM wParam, LPARAM lParam)
{
 switch(uMsgId) {
   case WM_QUERYENDSESSION:
       {
           //Codigo que se tiene que ejecutar justo antes de que se apague en pc
           remove("C:\\apagar.txt ");      
           MessageBoxA(0, "adios", "dw", 0);
         
           return 0;
           break;
       }
 }
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
   WNDCLASSEX wc;
   MSG msg;
   wc.lpfnWndProc = YourWindowProc;
   BOOL bRet;
   
 
   while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
   {
 if (bRet == -1)
 {
 
   
 }
 else
 {
     
       
   TranslateMessage(&msg);
   
   DispatchMessage(&msg);
 }
   }
   return 0;
}




SuperDraco

pues no te puedo ayudar...

Pero esto que lenguaje es? xD esto no va en WINDOWS... puf, y anda que dices con que lo has programado...

de todas formas fijandome en el código he visto 2 cosillas, kizás...

la primera es en "apagar.txt " tiene un espacio y luego la comilla... debeía estar sin el espacio, no?

y la segunda es en este código:

while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)

Me he fijado y es distinto a todos los demás, a pesar de no conocer el lenguaje con el que has programado, me atrevo a decir que...no podría ser más o menos así? (Solo quiero ayudar xD)

while( (bRet = GetMessage) &msg, NULL, 0, 0 ))( != 0)

quizás los parentesis están mal puestos, es lo que me ha parecido a simple vista sin conocer el lenguaje ni nada xD

saludossss

No he vuelto, solo estoy de paso.

RyogiShiki

Es to es C, debería ser movido al Subforo de C/C++

Saludos


Elemental Code

@pitoloko
no conozco en lenguaje pero la sintaxis esta bien

te lo paso a pseudocodigo


while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)

Mientras ( (Variable que es igual a GetMessage ( &msg, NULL, 0, 0 )) sea diferente a 0)


te colorie a que pertenecen los parentesis y como funciona

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas