在网上到处都有这种代码,你为什么不自己动手SEARCH一下。

解决方案 »

  1.   

    如此而已,如果要问原理的话,请看编程与技巧2002第2期呵呵void ShutDown(void)
    {
     OSVERSIONINFO osv;
     osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO;
     GetVersionEx(&osv);
     if(osv.dwPlatformId==VER_PLATFORM_WIN32_NT)
     {
      HANDLE hProcess,hToken;
      TOKEN_PRIVILEGES Privileges;
      LUID luid;
      hProcess=GetCurrentProcess();
      OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken);
      Privileges.PrivilegeCount=1;
      LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);
      Privileges.Privileges[0].Luid=luid;
      Privileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
      AdjustTokenPrivileges(hToken,FALSE,&Privileges,NULL,NULL,NULL);
     }
     ExitWindowsEx(EWX_POWEROFF,0);
    }