![]() |
ShutDown Problem
1: ExitWindowsEx(EWX_SHUTDOWN, 0);
2: ExitWindowsEx(EWX_REBOOT, 0); Hab folgendes Problem... EWX_SHUTDOWN macht gar nix (genauso wie reboot) und FORCE meldet das system ab anstatt es runterzufahren .. system: winXP SP1 2002 kann mir da jemand helfen? |
Re: ShutDown Problem
Hast du dir auch vorher die Rechte geholt? Kuck dir dazu mal den entsprechenden Beitrag in der Code-Lib an.
|
Re: ShutDown Problem
EWX_FORCE meldet aber immernoch nur ab ?! :( FORCE ist doch herunterfahren mit dem zusatz das speicherungsabfragen ignoriert werden oder?
|
Re: ShutDown Problem
Hi
Ich glaube du hast vergessen die Funktion zu benutzen
Delphi-Quellcode:
und dann so benutzen:
function ExWindows(const AQuestion: string; flag: word): Boolean;
var vi : TOSVersionInfo; hToken : THandle; tp : TTokenPrivileges; h : DWord; begin result := false; if Aquestion='' then vi.dwOSVersionInfoSize:=SizeOf(vi); GetVersionEx(vi); if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then begin // Windows NT // 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 begin Result := ExitWindowsEx(flag,0); end; end;
Delphi-Quellcode:
bei mir hats so funktioniert
ExWindows('', ewx_poweroff); //Beenden
ExWindows('', ewx_reboot ); //Neustart ExWindows('', ewx_logoff ); //Logoff hoffe das es bei dir nun auch was wird ;] |
Re: ShutDown Problem
Mal 'ne ganz blöde Frage:
Delphi-Quellcode:
Kann man da "result := ExitWindowsEx(flag,0);" nicht auch außerhalb der If-Abfrage machen? Schließlich unterscheidet sich der Code insofern überhaupt nicht.
If ...
. . . result := ExitWindowsEx(flag,0); end else // Windows 95 begin Result := ExitWindowsEx(flag,0); end; end; |
Re: ShutDown Problem
Zitat:
EWX_SHUTDOWN or EWX_FORCE // or = das Ergebnis enthält die Bits beiden Operanden (Zu gut Deutsch 'Erzwinge das Herunterfahren'. EWX_REBOOT or EWX_FORCE bedeutet dann logischerweise 'Erzwinge einen Neustart') |
Re: ShutDown Problem
Zitat:
|
Re: ShutDown Problem
wenn es nur unter windows xp funktionieren soll/kann kannst du folgendes machen:
Delphi-Quellcode:
mfg
ShellExecute(Handle, 'open', 'shutdown.exe', '-r -t 10 -c "Der Computer wird gleich neugestartet!" -f', nil, SW_SHOW);
stefan |
Re: ShutDown Problem
Bei allem Respekt, @StefanDP, aber es ist doch besser, den dafür vorgesehenen Befehl zu verwenden. Der funktioniert unter allen Windows-Versionen, nicht nur unter XP. Und das Abschreiben der Rechte-Funktion ist sicher auch nicht das Problem. ;)
|
Re: ShutDown Problem
Also ExWindows() klappt ja soweit ganz gut ... nur seit "neuestem" giebt es ja die möglichkeit updates vor dem PowerOff zu installieren.
(Start -> Herunterfahren -> Updates installieren und herunterfahren) Wie kann ich das nun mit ExWindows() machen? Wenn ich nur sporadisch die Updates installiere bekomm ich noch mal ärger ^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr. |
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