用VC实现XP自动关机、重启

 void ShutDown()

{

OSVERSIONINFO OsInfo;   
    OsInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);   
    GetVersionEx(&OsInfo);   
 
    if(OsInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)   
    {   
        HANDLE hToken;   
        TOKEN_PRIVILEGES tkp;   
        if(!OpenProcessToken(GetCurrentProcess(),   
            TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))   
        {   
            MessageBox("无法打开存取命令");   
            return;   
        }   
        LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);   
        tkp.PrivilegeCount=1;   
        tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;   
        AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);   
        if(GetLastError()!=ERROR_SUCCESS)   
        {   
            MessageBox("无法关机");   
            return;   
        }   
        if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0))   
        {   
            MessageBox("无法关机");   
        }   
    } 

}

以上函数实现的功能是自动关机,不出现提示框。要想做到重新启动,只需要把EWX_POWEROFF|EWX_FORCE参数换成EWX_REBOOT即可实现

你可能感兴趣的:(职场,XP,VC,自动关机,休闲)