Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi [Shutdown] - Verhindern, dass Windows es "abschießt" (https://www.delphipraxis.net/94281-%5Bshutdown%5D-verhindern-dass-windows-es-abschiesst.html)

xZise 19. Jun 2007 13:42

Re: [Shutdown] - Verhindern, dass Windows es "abschießt
 
Aber ich wills ja net abbrechen sondern nur "hinauszögern" ohne das gleich die Meldung kommt. Es handelt sich hier um Schulcomputer und aufgrund des Verhalten der Schüler weiß ich, dass sie sofort die Meldung wegdrücken ("Sofort beenden") ;)
Und bei Vista, welches nicht benutzt wird, aber wer weiß..., wäre das ja noch schlimmer xD

Naja... Jetzt funktionierts schonmal soweit, dass man die Ordner automatisch löschen kann ;)

pertzschc 19. Jun 2007 13:51

Re: [Shutdown] - Verhindern, dass Windows es "abschießt
 
Zitat:

Zitat von xZise
Aber ich wills ja net abbrechen sondern nur "hinauszögern" ohne das gleich die Meldung kommt. Es handelt sich hier um Schulcomputer...

Was willst Du eigentlich machen, was länger als sagen wir mal 30 sec. dauert?

Gruß,
Christoph

kalmi01 19. Jun 2007 13:58

Re: [Shutdown] - Verhindern, dass Windows es "abschießt
 
Zitat:

Zitat von xZise
Aber ich wills ja net abbrechen sondern nur "hinauszögern" ohne das gleich die Meldung kommt.

Dann hilft Dir sicher dies:
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Classes, Forms,
  Registry, ShellAPI, WinInet;

type
  TForm1 = class(TForm)
   private
    procedure CleanDir(SearchDir : string);

    procedure WMQueryEndSession(var Msg: TMessage); message WM_QUERYENDSESSION;
    procedure WMEndSession(var Msg: TMessage); message WM_ENDSESSION;
  end;
Im implementation-Teil dann noch:
Delphi-Quellcode:
procedure TForm1.WMQueryEndSession;
  begin
    Msg.Result := 0;

    CleanDir;

    Down := true;
    Msg.Result := 1;
  end;

procedure TForm1.WMEndSession;
  begin
    while not Down
    do Sleep(100);

    Msg.Result := 1;

    Self.Close;
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz