ExitWindowsEx

Gast #200661
Lesenswert?

Hallo

Ich habe mir ein Programm erstellt, mit dem ich jedes Windows neu
Booten möchte. Bei XP gehts aber bei 98 erzählt mir der Rechner, dass
erst die EXE beendet werden müsste befor Windows runterfahren kann.
Wenn ich die EXE schliesse passiert aber nix.

Ich benutze diesen Code.

HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |
TOKEN_QUERY, &hToken);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL,
0);
ExitWindowsEx(EWX_REBOOT, 0);

Habe auch das Gantze nur mit ExitWindowsEx(EWX_REBOOT, 0); ausprobiert.
Auch nix.
Wer kann mir sagen wo der Fehler für Win 98 sitzt.
Gast #200664
Lesenswert?

> MSDN meinte das Geht.
Tut es das?
Schau lieber nochmal genau nach. :-)
http://msdn.microsoft.com/library/en-us/sysinfo/base/exitwindowsex.asp

> Wie kann ich das denn sonst machen?
Ich würde wahrscheinlich eine WinAPI-Anwendung erstellen, also keine
Konsolenanwendung und mit WinMain. Mir fällt nämlich gerade keine
Alternative zu ExitWindowsEx ein, die unter Win9x funktioniert.
Möglich, dass es eine elegantere Methode gibt.
Gast #200665
Lesenswert?

@urmel

Ich habe zwar kein WIN98 mehr zur Hand, habe das aber aus einer alten
Doku:
Rundll32 Shell32.dll,SHExitWindowsEx 0  Anwender abmelden
Rundll32 Shell32.dll,SHExitWindowsEx 1  Windows beenden
Rundll32 Shell32.dll,SHExitWindowsEx 2  Windows neu starten
Rundll32 Shell32.dll,SHExitWindowsEx 4  Windows beenden, auch wenn noch
Anwendungen offen sind
Rundll32 Shell32.dll,SHExitWindowsEx 8  Rechner ausschalten
Rundll32 Shell32.dll,SHExitWindowsEx 13  Funktion 1 + 4 + 8 zusammen
ausführen
Gross/Kleinschreibung beim Kommando ist wichtig. Kommandos gelten nur
für WIN9X/ME. Hatte das früher mal als Icon auf dem Desktop und konnte
per Doppelklick oder Tastenkombination den Rechner ausschalten oder
rebooten.

mit freundlichen Grüßen

Frank

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren