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.
Hast du mal in der Doku des Plattform-SDKs nachgesehen? Da steht nämlich eine Bemerkung zu Win9x: > Windows Me/98/95: > ExitWindowsEx does not work from a console application.
> 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.
@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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.