• C#调用WMI关机示例


    WMI中Win32_OperationSystem的方法Win32ShutDown(flag)中flag的参数可以是下表中的任意一种:

    值 描述
    0 注销
    0 + 4 强制注销
    1 关机
    1 + 4 强制关机
    2 重起
    2 + 4 强制重起
    8 关闭电源
    8 + 4 强制关闭电源

    下面是示例:

    //关闭计算机
    private void btn_Shutdown_Click(object sender, EventArgs e)
    {
        string IPShutdown = "192.168.1.100";

        DialogResult dlResult = MessageBox.Show("确实要关闭“" + IPShutdown + "”电源吗?", "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
        if (dlResult == DialogResult.Yes)
        {
            string[] inParams ={ "8", "4" };
            BootComputer ShutdownBootComputer = new BootComputer();
            ShutdownBootComputer.strIp = IPShutdown;
            ShutdownBootComputer.strAdmin = txtAdmin.Text.Trim();
            ShutdownBootComputer.strPassword = txtPassword.Text.Trim();
            ShutdownBootComputer.strMothod = "Win32Shutdown";
            ShutdownBootComputer.inParams = inParams;
            ShutdownBootComputer.BootMachine();
        }
    }

    //关闭重启计算机(支持多线程)
    public class BootComputer
    {
        public string strIp, strAdmin, strPassword, strMothod;
        public string[] inParams;
        public void BootMachine()
        {
            ConnectionOptions BootConn = new ConnectionOptions();
            BootConn.Username = strAdmin;
            BootConn.Password = strPassword;
            ManagementScope ms = new ManagementScope("\\\\" + strIp + "\\root\\cimv2", BootConn);
            ms.Options.EnablePrivileges = true;
            if (!string.IsNullOrEmpty(strAdmin) && !string.IsNullOrEmpty(strPassword))
            {
                try { ms.Connect(); }
                catch { }
            }
            if (ms.IsConnected)
            {
                try
                {
                    ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
                    ManagementObjectSearcher mos = new ManagementObjectSearcher(ms, oq);
                    ManagementObjectCollection moc = mos.Get();
                    foreach (ManagementObject mo in moc)
                    {
                        string[] ss = inParams;
                        mo.InvokeMethod(strMothod, ss);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(strIp + ":" + ex.Message + "网络不通或用户名、密码不正确!");
                }
            }
        }
    }

  • 相关阅读:
    广东省第三届普通高中信息技术优质课交流评选活动参后感
    预说课
    arraylist和list的区别
    List 泛型类 详解
    C#中const和readonly的区别
    PHP array_walk() 函数
    栈,堆,代码区,全局(静态)区 ,常量区
    PHP_SELF、 SCRIPT_NAME、 REQUEST_URI区别
    c#中Dictionary、ArrayList、Hashtable和数组的区别(
    PHP文件包含语句 include、include_once、require、require_once
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1984550.html
Copyright © 2020-2023  润新知