请问如何实现自动关机?要求无需出现关机选择对话框。
比如说点一下按钮,机器就直接关闭了。网上下了几个,要么不行,要么还需点击确定才能关。
谢!

解决方案 »

  1.   

    BOOL CShutDown::ShutDown(UINT uFlags)
    {
    OSVERSIONINFO OsVersionInfo;   //包含操作系统版本信息的数据结构
    OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    GetVersionEx(&OsVersionInfo);    //获取操作系统版本信息
    if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
    {
    HANDLE handle;
    CString pszName= "SeShutdownPrivilege";
    CString pszSysName;
    LUID Luid;
    TOKEN_PRIVILEGES TkPriv;
    TOKEN_PRIVILEGES TkPriv2;
    unsigned long ulLen;
    handle = GetCurrentProcess();
    OpenProcessToken(handle,40,&handle);

    memset(&Luid,0x00,sizeof(Luid));
    LookupPrivilegeValue(pszSysName,pszName,&Luid);

    memset(&TkPriv,0x00,sizeof(TkPriv));
    TkPriv.PrivilegeCount = 1;
    TkPriv.Privileges[0].Luid = Luid;
    TkPriv.Privileges[0].Attributes = 2; 
    memset(&TkPriv2,0x00,sizeof(TkPriv2));
    AdjustTokenPrivileges(handle,FALSE,&TkPriv,16,&TkPriv2,&ulLen);

    return ExitWindowsEx(uFlags,0);
    }
    else
    {
    return ExitWindowsEx(uFlags,0);
    }
    }
      

  2.   

    我要源程序!
    [email protected]
      

  3.   

    关闭类型(UINT uFlags)可以是以下几种:  
    EWX_FORCE:强制关闭,Windows不会发送任何消息给正运行的程序,这可能导致数据丢失;  EWX_LOGOFF:关闭所有正在运行的程序,注销当前用户并重新登录;  
    EWX_POWEROFF:关闭Windows并关机,系统必须支持电源管理;  
    EWX_REBOOT:关闭Windows并重新启动;  
    EWX_SHUTDOWN:关闭Windows,缓冲区内的数据将被写入磁盘。
      

  4.   

    清简点的:
    HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken);
    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);
    ExitWindowsEx(EWX_POWEROFF, 0);