Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit System-Reboot (https://www.delphipraxis.net/59319-problem-mit-system-reboot.html)

mlspider 20. Dez 2005 16:59


Problem mit System-Reboot
 
Hallo,

ich versuche vergeblich mein System neu zu starten. Hierfür verwende ich folgende Funktion:

Delphi-Quellcode:
function ExitWin(flag:word): Boolean;
var vi     : TOSVersionInfo;
    hToken : THandle;
    tp     : TTokenPrivileges;
    h      : DWord;

begin
  //result := false;
  vi.dwOSVersionInfoSize:=SizeOf(vi);
  GetVersionEx(vi);
  if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then // Windows NT
  begin
    // Achtung bei Delphi 2 muß @hToken stehen ... !!!! ????? 
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken);
    LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
    tp.PrivilegeCount := 1;
    tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    h := 0;
    AdjustTokenPrivileges(hToken,False,tp,0,PTokenPrivileges(nil)^,h);
    CloseHandle(hToken);
    result := ExitWindowsEx(flag,0);
  end
  else // Windows 95 
  begin
    Result := ExitWindowsEx(flag,0);
  end;
end;
Der dazu gehörige Aufruf:

Delphi-Quellcode:
procedure TDownloader.spSkinButton6Click(Sender: TObject);
begin
 ExitWindowsEx(EWX_REBOOT, 0);
end;
Kann mir mal jemand verraten, warum das nicht funktioniert?

Danke.

jim_raynor 20. Dez 2005 17:02

Re: Problem mit System-Reboot
 
Delphi-Quellcode:
ExitWindowsEx(EWX_REBOOT, 0);
und
Delphi-Quellcode:
function ExitWin(flag:word): Boolean;
:gruebel: mmh. Irgendwas passt da doch nicht zusammen ...

mlspider 20. Dez 2005 17:05

Re: Problem mit System-Reboot
 
Kann ich nicht nachvollziehen.

jim_raynor 20. Dez 2005 17:10

Re: Problem mit System-Reboot
 
Du hast eine Funktion ExitWin erstellt in der auch das Herunterfahren für Windows NT gemacht wird. In spSkinButton6Click rufst du aber direkt ExitWindowsEx auf anstatt deine eigene ExitWin. Wenn du schon schreibst, dass du versuchst mit ExitWin Windows neuzustarten, diese Funktion aber dann garnicht aufrufst, passt irgendwas nicht zusammen ...

mlspider 20. Dez 2005 17:22

Re: Problem mit System-Reboot
 
Das sollte es gewesen sein. Jetzt funktioniert alles nach Plan.

Danke für den Hinweis.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr.

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