PDA

Ver la Versión Completa : Ejecutar programa al apagar


Iskariote0087
11-01-2007, 10:29:52
Hola he hecho un programita que me envia un mensaje cada vez que se reinicia un equipo de los que controlamos, pues bien, yo lo he puesto en el inicio pero no me vale, tambien me envia mensaje si se cierra y abre sesion.A mi lo que me interesa es que me envie el mensaje solo cuando se reinicie.He pensado hacerlo al apagar pero no se donde poner el programa.Alguna idea.

Un saludete Perretes
Iskariote

Neftali [Germán.Estévez]
11-01-2007, 11:05:16
Creo que puedes detectarlo interceptando el mensaje WM_QUERYENDSESSION.

...Añado/Edito:

Segun la API, después de que windows envía este mensaje, y si todas las aplicaciones se pueden cerrar, se envía otro WM_ENDSESSION cuyo parámetro wParam es True si se está haciendo un ShutDown.

Añado:
Buscando por ese mensaje, he llegado a este truco (http://www.swissdelphicenter.ch/en/showcode.php?id=351); A ver si te sirve.

mierda
11-01-2007, 19:56:12
Hola, este es el codigo q yo utilizo cuando van a apagar o van a reiniciar



procedure WMQueryEndSession (var Msg: TWMQueryEndSession);
message WM_QueryEndSession;


procedure TFprincipal.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin

Msg.Result := 0;
// aki va todo lo q quieras hacer
try
if (conectado = true) and (Timerconectar.Enabled = false) then
guarda_valores;
except
end;

// aqui ves si se apaga o reinicia

{if EndSessionFlags <> 0 then
ExitWindowsEx(EWX_LOGOFF,0) // Cerramos windows
else
ExitWindowsEx(EWX_SHUTDOWN,0); // Apagamos Windows
}

// ya le decimos que continue con el apagado/reiniciado
Msg.Result := 1;

end;


Un saludo.