Registriert seit: 24. Okt 2004
1.542 Beiträge
Delphi XE Architect
|
Windows 2003 mit Konsolenanwendung neustarten
6. Nov 2005, 12:10
Hi DPler
Ich möchte gern des wenn meine Konsollenanwendung gestartet wird der Windows 200 Server neugestartet wird.
Mit dem Code:
Delphi-Quellcode:
function ExWindows( const AFlag: Word): Boolean;
var
vi : TOSVersionInfo;
hToken : THandle;
tp : TTokenPrivileges;
h : DWord;
begin
result:= false;
vi.dwOSVersionInfoSize:=SizeOf(vi);
if GetVersionEx(vi) then
begin
if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
// Windows NT
// Achtung bei Delphi 2 muß @hToken stehen ...
if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,hToken) then
begin
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(Aflag, 0);
end;
end
else
begin // Windows 95
Result := ExitWindowsEx(Aflag, 0);
end;
end;
end;
begin
ExWindows(EWX_Reboot);
end.
geht des aber nicht.
Irgendwelche Idee wie der Code für 2003 ausschauen muss?
Alex "Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
|