首页 > 编程语言 >c# 使用自写命令来一键控制无线和本地网络的开启关闭

c# 使用自写命令来一键控制无线和本地网络的开启关闭

时间:2023-11-13 17:26:03浏览次数:85  
标签:Console 自写 c# adapter wxState obj 本地网络 benState string

程序需要用管理员的身份运行,使用WMI(Windows Management Instrumentation)

  • 使用ManagementObjectSearcher对象获取适配器信息
  • 使用ManagementObject的InvokeMethod方法执行相应操作

代码如下

 static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("本地连接名称:Realtek Gaming GbE Family Controller");
            Console.WriteLine("无线连接名称:Intel(R) Wi-Fi 6 AX201 160MHz");
            Console.ForegroundColor = ConsoleColor.Green;
            string wx = "Intel(R) Wi-Fi 6 AX201 160MHz";
            string ben = "Realtek Gaming GbE Family Controller";
            string str = "编号1:无线开,本地关\r\n编号2:无线关,本地开";
            Console.WriteLine(str);
            Console.ForegroundColor = ConsoleColor.White;
            while (true)
            {
                bool wxState = false;
                bool benState = false;
                string num = Console.ReadLine();
                NetManager(num, wx, ben, ref wxState, ref benState);
                Console.WriteLine("无线状态:" + wxState + "   本地状态:" + benState);
                Console.ReadKey();
            }
        }
        /// <summary>
        /// 获取网络
        /// </summary>
        /// <param name="num">标识</param>
        /// <param name="wx">无线网络名称</param>
        /// <param name="ben">本地网络名称</param>
        /// <param name="wxState">返回执行状态</param>
        /// <param name="benState">返回执行状态</param>
        public static void NetManager(string num,string wx,string ben, ref bool wxState, ref bool benState)
        {
            string manage = "SELECT * From Win32_NetworkAdapter";//  WHERE Name='本地连接'
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(manage);
            ManagementObjectCollection collection = searcher.Get();
            if (num == "1")
            {
                foreach (ManagementObject obj in collection)
                {
                    if (obj["Name"].ToString() == wx)
                    {
                        wxState= EnableLocalNetwork(obj);
                    }
                    else if (obj["Name"].ToString() == ben)
                    {
                        benState= DisableLocalNetwork(obj);
                    }
                }
            }
            else if (num == "2")
            {
                foreach (ManagementObject obj in collection)
                {
                    if (obj["Name"].ToString() == wx)
                    {
                        wxState= DisableLocalNetwork(obj);
                    }
                    else if (obj["Name"].ToString() == ben)
                    {
                        benState= EnableLocalNetwork(obj);
                    }
                }
            }          
        }
        /// <summary>
        /// 禁用网卡
        /// </summary>5
        /// <param name="adapter">网卡对象</param>
        /// <returns></returns>
        public static bool DisableLocalNetwork(ManagementObject adapter)
        {        
            if (adapter == null) return false;
            ManagementBaseObject inParams = adapter.GetMethodParameters("Disable");
            ManagementBaseObject outParams = adapter.InvokeMethod("Disable", inParams, null);
            uint resultCode = (uint)outParams["returnValue"];
            return resultCode == 0;
        }
        /// <summary>
        /// 启用网卡
        /// </summary>
        /// <param name="adapter">网卡对象</param>
        /// <returns></returns>
        public static bool EnableLocalNetwork(ManagementObject adapter)
        {          
            if (adapter == null) return false;
            ManagementBaseObject inParams = adapter.GetMethodParameters("Enable");
            ManagementBaseObject outParams = adapter.InvokeMethod("Enable", inParams, null);
            uint resultCode = (uint)outParams["returnValue"];
            return resultCode == 0;
        }
    }

 

 

标签:Console,自写,c#,adapter,wxState,obj,本地网络,benState,string
From: https://www.cnblogs.com/tianyiwuying/p/17829591.html

相关文章

  • crontab用法
    crontab用法crontab可以定时执行某些操作,很实用。通常Linux系统都已经自带。用法$crontab-hcrontab:invalidoption--'h'crontab:usageerror:unrecognizedoptionusage:crontab[-uuser]filecrontab[-uuser][-i]{-e|-l|-r}(de......
  • [题解] CF1156E Special Segments of Permutation
    SpecialSegmentsofPermutation给你一个排列\(p\),求有多少个区间\([l,r]\)满足\(p_l+p_r=\max_{i\in[l,r]}p_i\)。\(n\le2\times10^5\)。按最大值分治,记当前的分治中心为\(mid\),分治区间为\([l,r]\)。然后需要计算跨分治中心的贡献。如果\(mid-l......
  • java中一些空判断|ObjectUtils
    为什么用ObjectUtils?在java中判断对象是否为null,常常不止判断对象是否为null,如果对象是集合,数组,字符串等等特殊类型,还需要检查是否为空(元素个数为0或者长度为0)ObjectUtils.isEmpty可以简化下面这些问题(当然,你使用的是spring)对象为null。对象是数组,且长度为0。对象是集合(Coll......
  • ccm的处理
    ccm的值如何获取?RGB先转XYZ,再由XYZ转sRGB,在经过gamma非线性化,再和standard进行对比,从而获取ccm,ccm在RGB域处理gamma为啥在ccm后面?isp经过gamma之后图像就是非线性了,非线性会对颜色校准矩阵产生影响,导致颜色校准不准,gamma曲线修改后,ccm需要重新校准......
  • Teamcenter开发,时间表或者任务,如何获取子任务
    1、在胖客户端是看到对应子任务,是放在父任务的哪个属性的。2、你在胖客户端看父任务和子任务的关系,也是-1,所以这个就很奇怪了。 是这个属性 child_task_taglist 补充一下:时间表  和汇总任务的关系内码是:fnd0SummaryTask如果要获取时间表下面的子任务,不能通过时间......
  • IMC平台API接口如何对接C#数据库
    C#能抓取设备OID节点实现读取设备功能展示,如何对接IMC现有API接口 写入C#更直接调用IMC现有数据(设备种类数量,告警信息,CU利用率,无线运维大屏等) 答:如果是要开发IMC,需要购买IMC开发,如果是要调用IMC接口,可以联系400或者当地办事处对接下参考下api接口文档:https://zhiliao.h3c.co......
  • 如何查虚拟机中的文件在哪个路径(eg:ChromeDriver)
     要查找虚拟机中ChromeDriver的路径,您可以使用which命令或find命令。以下是两种方法:使用which命令。在终端中输入以下命令:whichchromedriver如果ChromeDriver已经在系统的PATH环境变量中,该命令将返回ChromeDriver的完整路径。否则,将返回空值。使用find命令。在终端中......
  • (十五)C#编程基础复习——值传递、引用传递、输出传递
    通过前面的学习,我们了解了在调用带有参数的函数时,需要将参数传递给函数。在介绍这几种传递方式之前,我们先来介绍一下形式参数(形参)和实际参数(实参)这两个概念:形式参数:在定义函数阶段参数列表中定义的参数称之为形式参数,简称形参,可以将它看做变量的名称,它没有具体的值,只是用来接收......
  • 单通道、8位MCP47CVD01T-E/MF、MCP47CVD01-E/MF、MCP47CVD01-E/MG数模转换器(DAC)适合消
    概述MCP47CVD01是一款单通道、8位、缓冲电压输出数模转换器(DAC),具有易失性存储器和I²C兼容串行接口。该器件提供四种不同的基准电压选项:器件VDD、外部VREF(缓冲或无缓冲)和内部带隙。它提供1LSB积分非线性(INL)、低功耗和4µs的快速建立时间。它适合消费和工业应用,如设定点或失调调......
  • C++编程爬虫代码全过程分享
    以下是使用C++编写一个爬虫程序的基本步骤和代码示例:1、首先,我们需要包含必要的库文件。在这个例子中,我们将使用<iostream>、<string>和<curlpp/cURLpp.hpp>库。#include<iostream>#include<string>#include<curlpp/cURLpp.hpp>#include<curlpp/Easy.hpp>#include<curlpp/......