Entwickler-Ecke
Sonstiges (Delphi) - Herunterfahren des Computers unter Windows XP, Delphi 5?
MazeMan - Do 14.11.02 22:32
Titel: Herunterfahren des Computers unter Windows XP, Delphi 5?
Ich habe jetzt schon eine Menge versucht, aber der Computer will sich einfach nicht unter Delphi ausschalten lassen :crying: :autsch:
Das normale ExitWindows - Verfahren nutzt mir nichts, aber ExitWindowsEx macht unter XP nicht mit :!:
Delete - Do 14.11.02 22:42
Unter NT basierenden Systemen mußt du dir erst die Rechte holen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| function ExitWin(flag:word): Boolean; var vi : TOSVersionInfo; hToken : THandle; tp : TTokenPrivileges; h : DWord;
begin //result := false; vi.dwOSVersionInfoSize:=SizeOf(vi); GetVersionEx(vi); if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then // Windows NT begin 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 // Windows 95 begin Result := ExitWindowsEx(flag,0); end; end; |
Aufruf mit:
Quelltext
1:
| ExitWin(EWX_POWEROFF); |
MazeMan - Fr 15.11.02 08:38
Titel: [b]Danke für den Quelltext[/b]
Der Text hat mir super geholfen, dieses Problem zu lösen. Jetzt lässt der Computer sich besser herunter- und wieder rauffahren. Danke für den Lösungs nsatz des kleinen Problems. :oops: :idea:
Delete - Fr 15.11.02 08:53
Ich würde mich an deiner Stelle ein bisschen mit der Theorie hinter den NT-Systemen beschäftigen. Diese Rechte-Sache wird dir auch anderweitig noch begegnen. Etwa beim Registry-Zugriff auf bestimmte Schlüssel (*zonk*, wenn du keine Admin-Rechte hast), beim Zugriff auf bestimmte Ordner ...
Das lässt sich evtl. nicht in jedem Fall mit dem Holen der Rechte lösen, aber es gibt Prüffunktionen, die man nutzen kann und sollte, und mit deren Hilfe man die entsprechenden Funktionen in seiner Anwendung dann deaktivieren oder verstecken oder gar nicht erst ausführen lassen kann.
MazeMan - Fr 15.11.02 21:16
Titel: Re:Woher bekommt man diese Theorie?
Woher bekommt man diese Theorie, wenn die FAQs nicht reichen? Ich bin noch ein ziemlicher Neuling in Sachen Programmierung, über 'Hello World' und kleine Anwendungen bin ich leider noch nicht hinausgekommen. Ich werde mcih auf alle Fälle noch weiter damit beschäftigen :!:
MazeMan - Fr 15.11.02 22:18
Super, das könnte weiterhelfen
Danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!