hi,
habe ein programm, das es eine aktion durchführen muss, wenn das system runtergefahren wird. das kann ich inzwischen abfangen.
jedoch kann ich nicht zwischen shutdown und reboot nicht unterscheiden.
das ist wichtig, weil beim rebooten die aktion NICHT durchgeführt werden soll.
so wird jetzt gemacht
Delphi-Quellcode:
procedure TMain.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
Msg.Result := 0 // damit wird der shutdown/reboot process abgebrochen
// hier muss ich unterscheiden können was durchgeführt wurde, shutdown oder reboot
...
end;
lt. MS
Zitat:
lParam
If this parameter is zero, the system is shutting down or restarting (it is not possible to determine which event is occurring).
geht auch nicht irgenwie über windows messages ? oder gibt es ganz andere methoden sowas zu unterscheiden ?
habe in den
unit messages folgende konstante gefunden.
leider funkt. mein winsight prog. nicht mehr (fehlermeldung beim starten), sodass ich diese nicht prüfen kann.
Delphi-Quellcode:
{$EXTERNALSYM EWX_LOGOFF}
EWX_LOGOFF = 0;
{$EXTERNALSYM EWX_SHUTDOWN}
EWX_SHUTDOWN = 1;
{$EXTERNALSYM EWX_REBOOT}
EWX_REBOOT = 2;
{$EXTERNALSYM EWX_FORCE}
EWX_FORCE = 4;
{$EXTERNALSYM EWX_POWEROFF}
EWX_POWEROFF = 8;
{$EXTERNALSYM EWX_FORCEIFHUNG}
EWX_FORCEIFHUNG = $10;
übrigens, gibt es ein ersatz für winsight, der auch system messages auflisten kann ?
thx