![]() |
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 ^^ |
Re: ShutDown Problem
*push* waren das nun 24h oder 24 Tage pause bis zum pushen :gruebel: :mrgreen:
|
Re: ShutDown Problem
habs genauso wie im #4 gemacht aber keine wirkung :?
nach einem countdown wird ein button automatisch geklickt mit folgendem code:
Delphi-Quellcode:
was ist daran falsch?
//case mag ich nicht so ;)
if lboff.itemindex=0 then ExWindows('', ewx_poweroff) //Beenden else if lboff.itemindex=1 then ExWindows('', ewx_reboot ) //Neustart else if lboff.itemindex=2 then ExWindows('', ewx_logoff ); //Logoff end; |
Re: ShutDown Problem
Zitat:
Delphi-Quellcode:
Was kann man daran bitte jetzt nicht mögen?
case lboff.itemindex of
0: ExWindows('', ewx_poweroff); 1: ExWindows('', ewx_reboot ); 2: ExWindows('', ewx_logoff ); end; BTW debugg das mal und guck, ob er überhaupt in den entsprechenden Zweig (if/case) reinspringt. |
Re: ShutDown Problem
ich weiß so hatte ich es auch schon aber ist nicht eine if-anweisung schöner? ;)
verschachtelt ohne ende. case geht schon.. |
Re: ShutDown Problem
Zitat:
|
Re: ShutDown Problem
Back to the topic please.
warum funzt die case nicht. wäre eine ShellExecute besser? |
Re: ShutDown Problem
Hallo,
weil du in Zeile 533 ein "end" vergessen hast. :cyclops: Nein, kleiner Scherz. Schreib doch mal, was daran nicht funktioniert, sonst ist dir nicht zu helfen ;-) Gruß, ManuMF |
Re: ShutDown Problem
hab mir selber geholfen ;)
es gab ein problem mit der tlistbox. irgendwie verstand der nicht .itemindex. die gleiche methode bei einer tcombobox funzt einwandfrei. |
Re: ShutDown Problem
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 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