Archiv verlassen und diese Seite im Standarddesign anzeigen : Shutdown unter WinXP
Hallo Leute !
Unter Windows XP funktioniert der shutdownbefehl
exitwindowsex(EWX_SHUTDOWN,0);
nichtmehr ! hat da jemand eine andere Lösung ?
MfG dr.corn
Felix Kaiser
26.01.2002, 20:27
Wenn dieser Befehl nicht das tut was er tun sollte, dann hat die Anwendung nicht die entsprechenden Rechte um das System herunterzufahren und da kann die Anwendung selber verdammt wenig machen ....
Aber unter Windows Me und 98 hat er noch funktioniert !
Erst seit Windows XP funktioniert er nichtmehr !
MfG dr.corn
EDIT:
BTW bin unter Win XP als Admin eingeloggt hab also
volle Rechte !
Felix Kaiser
27.01.2002, 15:44
Du hast die Rechte, aber die Anwendung wohl nicht. Zu dem ist dieses Schutzsystem durch Rechteverteilung auf Anwendungen ein Bestandteil der NT-Technologie und davon hat weder Win98 was noch WinME, ein Vergleich ist daher mehr als sinnlos ...
Hab ich verstanden !
Danke !
Hats du ein Lösung wie ich den Pc trotzdem runterfahren kann?
Wäre dir sehr dankbar!
MfG dr.corn
Von:Jon E. Scott (jscott@landstar.com)
Betrifft:Re: How to Shutdown NT
Newsgroups:borland.public.delphi.winapi
View this article only
Datum:1998/02/13
Bonny,
You have to give the app "security rights" in Win NT to shut down or
restart. Copy the following code to your app´s code. Simply call
RebootWinNT procedure to reboot the machine. If you want to shutdown,
change EWX_REBOOT to EWX_SHUTDOWN.
function ChangeSecurityForShutdown: Boolean;
{ This func changes security rights on the WinNT server }
{ to give app shutdown privileges. }
var
hToken : THandle;
tkp,
Newt : TTokenPrivileges;
retlength : DWORD;
begin
Result := False;
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES +
TOKEN_QUERY, @hToken) <> False then
begin
{ Get the LUID for shutdown privilege }
if LookupPrivilegeValue( nil, ´SeShutdownPrivilege´,
tkp.Privileges[0].Luid) = True then
begin
tkp.PrivilegeCount := 1; // One to set
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
{ Get shutdown privilege for this process }
Result := AdjustTokenPrivileges(hToken, False, tkp,
SizeOf(TTokenPrivileges),
Newt,
retlength);
end;
end;
end;
procedure RebootWinNT;
begin
if ChangeSecurityForShutdown then
ExitWindowsEx(EWX_REBOOT, 0)
else
{ Failed to change security rights to give us shutdown
privilege. }
MessageDlg(´Unable to modify security rights for shutdown
privileges.´, mtError, [mbOK], 0);
end;
Vielen DANK !
Funzt Perfekt, keine weiteren Fragen mehr :D :D :D
MfG dr.corn
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.