NT에서 종료하는 법이 올라와 있더라구요...
근데 종료는 안되고 재시작이 되요..방법좀 갈켜주세요..
var
PreviosPrivileges : ^TTokenPrivileges;
TokenPrivileges : TTokenPrivileges;
ProcessHandle : THandle;
tmp : Integer;
begin
if not OpenProcessToken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY,ProcessHandle ) then
Exit;
LookupPrivilegeValue( '', 'SeShutdownPrivilege', TokenPrivileges.Privileges[0].Luid );
TokenPrivileges.PrivilegeCount := 1;
TokenPrivileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
tmp := 0;
PreviosPrivileges := nil;
AdjustTokenPrivileges(ProcessHandle, False, TokenPrivileges, 0, PreviosPrivileges^, tmp);
if not GetLastError()=ERROR_SUCCESS then
Exit;
if not InitiateSystemShutdown( '', '', 0, True, True ) then
Exit;
TokenPrivileges.Privileges[0].Attributes := 0;
AdjustTokenPrivileges( ProcessHandle, False, TokenPrivileges, 0,PreviosPrivileges^, tmp );
end;
이걸사용해서 쓰면요...재시작이 되요...
윈도 2000에서 종료하는 법은 이게 아닌가요?...아님 무엇을 바꾸어야 할지...