windows系统操作类和演示程序(关机,关闭显示器,打开屏幕保护程序,打开光驱等)

/// <summary>

    /// 系统控制类,关机,关闭显示器,打开屏幕保存程序等

    /// </summary>

    public class SystemPowerController

    {

        private const int WM_SYSCOMMAND = 0x112;    //系统消息

        private const int SC_SCREENSAVE = 0xF140;   //启动屏幕保护消息

        private const int SC_MONITORPOWER = 0xF170; //关闭显示器的系统命令

        private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff); //广播消息,所有顶级窗体都会接收



        [System.Runtime.InteropServices.DllImport("user32.dll")]

        private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);



        [System.Runtime.InteropServices.DllImport(@"user32.dll", EntryPoint = "ExitWindowsEx", CharSet = System.Runtime.InteropServices.CharSet.Ansi)]

        private static extern int ExitWindowsEx(int uFlags, int dwReserverd);



        [System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint = "mciSendStringA")]

        private static extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLenght, IntPtr hwndCallback);



        /// <summary>

        /// 显示器操作,打开、关闭、省电状态

        /// </summary>

        /// <param name="power">指示对显示器用何种操作</param>

        public void MonitorPower(MonitorPowerType power)

        {

            SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (int)power);

        }



        /// <summary>

        /// 开启屏幕保护程序

        /// </summary>

        public void ScreenSave()

        {

            SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, 0);

        }



        /// <summary>

        /// 系统操作,注销windows、关机、重启

        /// </summary>

        /// <param name="exit">指示对windows进行何种操作</param>

        public void ExitWindows(ExitWindowsType exit)

        {

            try

            {

                switch (exit)

                {

                    case ExitWindowsType.Exit://注销

                        ExitWindowsEx(0, 0);

                        break;

                    case ExitWindowsType.Off://关机

                        HideShutdownUi(" -s -t 0");

                        break;

                    case ExitWindowsType.Restart://重启

                        HideShutdownUi(" -r -t 0");

                        break;

                }

            }

            catch (Exception)

            {

                throw;

            }

        }



        private void HideShutdownUi(string arguments)

        {

            //声明一个程序信息类

            System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();

            //设置外部程序名

            Info.FileName = "Shutdown.exe";

            //设置隐藏窗口

            Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

            //设置外部程序的启动参数(命令行参数)为test.txt

            Info.Arguments = arguments;

            //设置外部程序工作目录为  C:\

            //Info.WorkingDirectory = "C:\\";

            //声明一个程序类

            System.Diagnostics.Process Proc;

            try

            {

                //

                //启动外部程序

                //

                Proc = System.Diagnostics.Process.Start(Info);

            }

            catch (System.ComponentModel.Win32Exception exc)

            {

                throw exc;

            }

        }



        /// <summary>

        /// 打开或关闭光驱

        /// </summary>

        /// <param name="open">true:打开,false:关闭</param>

        public void CDDriver(bool open)

        {

            if (open)

                mciSendString("set cdaudio door open", null, 0, IntPtr.Zero);

            else

                mciSendString("set cdaudio door closed", null, 0, IntPtr.Zero);

        }

    }



    /// <summary>

    /// 显示器操作枚举

    /// </summary>

    public enum MonitorPowerType

    {

        /// <summary>

        /// 打开显示器

        /// </summary>

        POWER_ON = -1,

        /// <summary>

        /// 进入省电状态

        /// </summary>

        POWER_SAVE = 1,

        /// <summary>

        /// 关闭显示器

        /// </summary>

        POWER_OFF = 2

    }



    /// <summary>

    /// 系统操作枚举

    /// </summary>

    public enum ExitWindowsType

    {

        /// <summary>

        /// 注销windows

        /// </summary>

        Exit,

        /// <summary>

        /// 关机

        /// </summary>

        Off,

        /// <summary>

        /// 重启系统

        /// </summary>

        Restart

    }

自己在网上查阅的所需资源整理后封装成的windows系统操作类,测试全通过,放心使用。

你可能感兴趣的:(windows)