HAb ich im Forum gefunden!Allerdings nur mit nem server prog. machbar
Delphi-Quellcode:
function tForm1.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
// Achtung bei Delphi 2 muß @hToken stehen ... !!!! ?????
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;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.ExitWin(EWX_SHUTDOWN);
end;
Einfacher noch geht es mit einem Befehl!
Exitwindows(EWX_logoff,ewx_force);
Es muss allerdings auch noch nen MS-DOS eingabevorderungs befehl geben , den ich weiss das das bei win2000 ging! Weiss leder nit mehr wie aber die Windowshilfe hat bestimmt ne auskunft oder google!
Muss dann ja nurnoch den port und die adresse, ebenfalls Kennwort und user eingeben!
guck mal hier! vielleicht is das was!
http://www.lan2wan.de/forum/NetzAllg/129.html#1
@wardz