Einzelnen Beitrag anzeigen

JB-1990

Registriert seit: 3. Okt 2007
56 Beiträge
 
#19

Re: XP shutdownbefehle

  Alt 22. Nov 2007, 19:41
Zitat von Luckie:
Zitat von JB-1990:
Wie krieg ich das in das Prog. ohne 'ne *.bat zu erstellen?
Hier im Forum suchenShellexecute wäre eine Möglichkeit.
via cmd? Und dann im 4. parameter den Befehl der Bat?

Delphi-Quellcode:
(*
This demonstration tries to shutdown your computer by enabling the
needed privilege and calling the WinAPI-function afterwards.
The shutdown will be cancelled after ten seconds.
*)
 

program SimpleShutdown;

{$APPTYPE CONSOLE} 

uses
  SysUtils,
  JwaWindows,
  JwsclExceptions,
  JwsclToken;

var
  Token: TJwSecurityToken;

begin
  try
    Token:=TJwSecurityToken.CreateTokenByProcess(GetCurrentProcess,
      TOKEN_ADJUST_PRIVILEGES or TOKEN_READ or TOKEN_QUERY);
  except
    on E: EJwsclOpenProcessTokenException do
    begin
      Writeln(E.Message);
      Readln;
      Exit;
    end;
  end;
  try
    if Token.PrivilegeAvailable[SE_SHUTDOWN_NAME] then
    begin
      Writeln('SE_SHUTDOWN_NAME is available');
      Token.PrivilegeEnabled[SE_SHUTDOWN_NAME]:=True;
    end
    else
      Writeln('SE_SHUTDOWN_NAME is not available');
  finally
    FreeAndNil(Token);
  end;

  if not InitiateSystemShutdown(nil, 'The computer will be shut down in 60 seconds.', 60, False, False) then
    Writeln(SysErrorMessage(GetLastError))
  else
  begin
    Sleep(10000);
    AbortSystemShutdown(nil); //stops the shutdown
  end;

  Readln;
end.
zwar super lösung, aber geht über mein Verständnis raus, kein plan, was der da macht und das gefällt mir net, wenn ein Programm was macht und ich nicht weiß was...

[edit=Luckie]Delphi-Tags gesetzt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat