zoukankan      html  css  js  c++  java
  • 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没有测试环境。未作测试。

  • 相关阅读:
    求自变量的取值范围时需要注意的角度
    求正弦型函数的解析式
    求三角形面积的最值[范围]
    三角函数对称性[奇偶性]
    2019届高三理科数学选择填空整理
    均值不等式使用变化
    破解正弦型函数参数的取值范围
    构造法求数列通项公式
    累乘法
    Centos中压缩(zip)和解压(unzip)命令
  • 原文地址:https://www.cnblogs.com/leeairw/p/3740430.html
Copyright © 2011-2022 走看看