zoukankan      html  css  js  c++  java
  • Windows 代码实现关机(直接黑屏)

       整理资料的时候发现的以前的代码,本机Win7 x64 Sp1 运行直接关机,黑屏。就是利用RtlAdjustPrivilege函数提权,代码中的注释写的很详细了。用的VS2010写的,直接编译成x64就可以运行,直接关机了。

    #include "stdafx.h"
    
    
    #include <Windows.h>
    #include <stdio.h>
    
    //定义函数原型
    typedef long (__fastcall *pfnRtlAdjustPrivilege64)(ULONG,ULONG,ULONG,PVOID);
    typedef int (* pfnZwShutdownSystem)(int);
    pfnRtlAdjustPrivilege64 RtlAdjustPrivilege;
    pfnZwShutdownSystem  ZwShutdownSystem;
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        //装载DLL
        HMODULE hModule = ::LoadLibrary(L"NTDLL.DLL");
        if(hModule == NULL) {
            printf("LoadLibrary error
    ");
            return 0;
        }
    
        //得到导出函数的地址
        RtlAdjustPrivilege = (pfnRtlAdjustPrivilege64)GetProcAddress(hModule, "RtlAdjustPrivilege");
        ZwShutdownSystem = (pfnZwShutdownSystem)GetProcAddress(hModule,"ZwShutdownSystem");
        if(RtlAdjustPrivilege == NULL) {
            printf("GetProcAddress error 
    ");
            return 0;
        }
        
        //取得系统版本
        OSVERSIONINFO osvi;
        osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
        if(GetVersionEx(&osvi) == 0) {
            return false;
        }
        DWORD  dwReturnval;
        if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
            /*
            .常量 SE_BACKUP_PRIVILEGE, "17", 公开
            .常量 SE_RESTORE_PRIVILEGE, "18", 公开
            .常量 SE_SHUTDOWN_PRIVILEGE, "19", 公开
            .常量 SE_DEBUG_PRIVILEGE, "20", 公开
            */
            RtlAdjustPrivilege(19, 1, 0, &dwReturnval);
        }
        //强制关机, 不向进程发送WM_QUERYENDSESSION消息
        //ExitWindowsEx(EWX_FORCE, 0); //退出用户
        ZwShutdownSystem(2);  //直接黑屏
        return 0;
    }
  • 相关阅读:
    找出占用磁盘空间最大的前10个文件或文件夹
    把inline函数的定义放在头文件中
    判断是大端字节序还是小端字节序
    在source insight 中添加系统字体
    C++ inline 函数
    标准I/O函数库的三类缓冲
    内存分配失败错误处理
    P1765 手机
    P1321 单词覆盖还原
    P1308 [NOIP2011 普及组] 统计单词数
  • 原文地址:https://www.cnblogs.com/lanrenxinxin/p/4662544.html
Copyright © 2011-2022 走看看