• C# 实现快速闪电关机、快速重启


    using System;
    using System.Runtime.InteropServices;
    
    namespace FastReboot
    {
        static class Program
        {
            private delegate uint ZwShutdownSystem(int ShutdownAction);//编译
            private delegate uint RtlAdjustPrivilege(int Privilege, bool Enable, bool CurrentThread, ref int Enabled);
    
            [DllImport("kernel32.dll")]
            private extern static IntPtr LoadLibrary(String path);
            [DllImport("kernel32.dll")]
            private extern static IntPtr GetProcAddress(IntPtr lib, String funcName);
            [DllImport("kernel32.dll")]
            private extern static bool FreeLibrary(IntPtr lib);
    
            //将要执行的函数转换为委托
            private static Delegate Invoke(String APIName, Type t, IntPtr hLib)
            {
                IntPtr api = GetProcAddress(hLib, APIName);
                return (Delegate)Marshal.GetDelegateForFunctionPointer(api, t);
            }
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                IntPtr hLib = LoadLibrary("ntdll.dll");
                RtlAdjustPrivilege rtla = (RtlAdjustPrivilege)Invoke("RtlAdjustPrivilege", typeof(RtlAdjustPrivilege), hLib);
                ZwShutdownSystem shutdown = (ZwShutdownSystem)Invoke("ZwShutdownSystem", typeof(ZwShutdownSystem), hLib);
    
                int en = 0;
                uint ret = rtla(0x13, true, false, ref en);//SE_SHUTDOWN_PRIVILEGE = 0x13;     //关机权限
                ret = shutdown(1); // POWEROFF = 0x2 // 关机 // REBOOT = 0x1 // 重启
            }
        }
    }

    用C#实现闪电关机、重启。XP、2003、win8 x64测试正常。win7没有测试环境。未作测试。

  • 相关阅读:
    象棋人工智能的实现
    cocos2dx实现象棋之运动
    python基础实战之猜年龄游戏
    python流程控制if判断与循环(for、while)
    python基本算术运算符
    python格式化输出的三种方式
    python解压缩
    python集合
    python元组
    python布尔类型
  • 原文地址:https://www.cnblogs.com/leeairw/p/3740430.html
Copyright © 2020-2023  润新知