2000下,可以这样,98下很容易,win32check(ExitWindowsEx(shutdown,0));
2000下,可这样点button2就可以了,自己用吧
procedure TForm1.Button2Click(Sender: TObject);
var
  VerInfo:TOSVersionInfo;
  hToken:THANDLE;
  tkp:TOKEN_PRIVILEGES;
  Nothing:Cardinal;
begin
  VerInfo.dwOSVersionInfoSize:=SizeOf(VerInfo);
  GetVersionEx(VerInfo);
  if VerInfo.dwPlatformId=VER_PLATFORM_WIN32_NT then
  Begin
    OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
    LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid);
    tkp.PrivilegeCount:= 1;
    tkp.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken, FALSE, tkp, 0,nil, Nothing);
  End;
    ExitWindowsEx(EWX_POWEROFF,0);//这句就是关机
  //ExitWindowsEx(EWX_REBOOT,0);
end;