zoukankan      html  css  js  c++  java
  • Windows快速关机与重启

    #include <windows.h>
    
    int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
    {
        int SE_SHUTDOWN_PRIVILEGE = 0x13;
        typedef int (WINAPI *PFNRtlAdjustPrivilege)( INT, BOOL, BOOL, BOOL* );
        typedef int (WINAPI *PFNZwShutdownSystem)( INT );
    
        HMODULE hModule = LoadLibrary( TEXT("ntdll.dll") );
        if( hModule != NULL)
        {
            PFNRtlAdjustPrivilege pfnRtlAdjustPrivilege = (PFNRtlAdjustPrivilege)GetProcAddress( hModule, "RtlAdjustPrivilege" );
            PFNZwShutdownSystem pfnZwShutdownSystem = (PFNZwShutdownSystem)GetProcAddress( hModule, "ZwShutdownSystem" );
            if( pfnRtlAdjustPrivilege != NULL &&
                pfnZwShutdownSystem != NULL )
            {
                BOOL bEnabled = 0;
                int nResult = pfnRtlAdjustPrivilege( SE_SHUTDOWN_PRIVILEGE,
                                                  TRUE, TRUE, &bEnabled );
                if( nResult == 0xC000007C )
                nResult = pfnRtlAdjustPrivilege( SE_SHUTDOWN_PRIVILEGE,
                                              TRUE, FALSE, &bEnabled );
                nResult = pfnZwShutdownSystem( 0 );
                //快速关闭系统 = 0;
                //快速重启 = 1;
                //快速关机 = 2;
            }
        }
    }
    
  • 相关阅读:
    010-你觉得单元测试可行吗
    跳台阶
    斐波那契数列
    旋转数组的最小数字
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    二维数组中的查找
    Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/LinuxHunter/p/1885832.html
Copyright © 2011-2022 走看看