博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用cmd命令创建wifi热点
阅读量:6706 次
发布时间:2019-06-25

本文共 4322 字,大约阅读时间需要 14 分钟。

hot3.png

核心代码:

1 /**  2          * 利用cmd命令创建wifi热点  3          * */  4         private void btCreateWifi_Click(object sender, EventArgs e)  5         {  6             string hotSpotName = wifiName.Text.Trim();  7             string hotSpotPass = wifiPass.Text.Trim();  8             if (hotSpotPass.Length < 8)  9             { 10                 MessageBox.Show("密码必须大于8位,请重新输入..."); 11                 wifiPass.Focus(); 12             } 13             else 14             { 15                 if (createHotSpot(hotSpotName, hotSpotPass)) 16                     MessageBox.Show("wifi热点创建成功\n热点名为:" + hotSpotName + "\n密码为:" + hotSpotPass); 17                 else 18                     MessageBox.Show("wifi热点创建失败"); 19             } 20         } 21  22         /**  23          * 执行Cmd命令创建wifi热点 24          * */ 25         public Boolean createHotSpot(string hotSpotName, string hotSpotPass) 26         { 27             //创建wifi热点三部曲,仅适用于win7下 28             string cmd1 = "netsh wlan set hostednetwork mode=allow"; 29             string cmd2 = "netsh wlan set hostednetwork ssid=" + hotSpotName + " key=" + hotSpotPass; 30             string cmd3 = "netsh wlan start hostednetwork"; 31  32             string[] cmd = new string[] { cmd1, cmd2, cmd3 }; 33  34             string rs = execMutipleCmd(cmd); 35  36             cmdMsg.AppendText(rs); 37  38             return regexCheckIfSuccess(rs, "已启动承载网络"); 39         } 40         /** 41          * 用正则匹配是否成功 42          * */ 43         public Boolean regexCheckIfSuccess(string msg, string reg) 44         { 45             Regex r = new Regex(reg); 46             Match m = r.Match(msg); 47             if (m.Success) 48                 return true; 49             else 50                 return false; 51         } 52  53         private void stopWifi_Click(object sender, EventArgs e) 54         { 55             if (stopHotSpot()) 56                 MessageBox.Show("禁止wifi热点成功"); 57             else 58                 MessageBox.Show("禁止操作失败"); 59         } 60  61         public Boolean stopHotSpot() 62         { 63             string cmd = "netsh wlan set hostednetwork mode=disallow"; 64  65             string rs = execSingleCmd(cmd); 66             cmdMsg.AppendText(rs); 67             return regexCheckIfSuccess(rs, "承载网络模式已设置为禁止"); 68         } 69         /** 70          * 执行单条命令 71          * */ 72         public static string execSingleCmd(string cmd) 73         { 74             //因为cmd直接在window system32目录下,所以无需加路径 75             ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe"); 76  77             //设置不显示cmd窗口 78             startInfo.CreateNoWindow = true; 79             startInfo.UseShellExecute = false; 80  81             startInfo.RedirectStandardInput = true; 82             startInfo.RedirectStandardOutput = true; 83  84             Process process = Process.Start(startInfo); 85             process.StandardInput.AutoFlush = true; 86  87             process.StandardInput.WriteLine(cmd); 88             process.StandardInput.WriteLine("exit"); 89             //等待程序执行完退出进程 90             process.WaitForExit(); 91             //截获输出流 92             string rs = process.StandardOutput.ReadToEnd(); 93             process.Close(); 94             return rs; 95         } 96  97         /** 98          * 执行多条命令 99          * */100         public static string execMutipleCmd(string[] cmd)101         {102             //因为cmd直接在window system32目录下,所以无需加路径103             ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe");104 105             //设置不显示cmd窗口106             startInfo.CreateNoWindow = true;107             startInfo.UseShellExecute = false;108 109             startInfo.RedirectStandardInput = true;110             startInfo.RedirectStandardOutput = true;111 112             Process process = Process.Start(startInfo);113             process.StandardInput.AutoFlush = true;114             for (int i = 0; i < cmd.Length; ++i)115                 process.StandardInput.WriteLine(cmd[i]);116             process.StandardInput.WriteLine("exit");117             //等待程序执行完退出进程118             process.WaitForExit();119             //截获输出流120             string rs = process.StandardOutput.ReadToEnd();121             process.Close();122             return rs;123         }

 

转载于:https://my.oschina.net/ifeixiang/blog/339387

你可能感兴趣的文章
Android实现录音的方法(最重要的是对MediaRecorder的试用方法)
查看>>
Android ViewDragHelper完全解析 自定义ViewGroup神器
查看>>
mysql简单优化思路
查看>>
tomcat并发优化之三种接收处理请求方式(BIO、NIO、APR)介绍
查看>>
将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1 RC 1
查看>>
Centos7搭建Confluence破解版
查看>>
归并排序的实现
查看>>
phpstorm更改sql文件匹配类型
查看>>
Nancy之结合tinyfox给我们的应用提供简单的数据服务
查看>>
多个Tomcat之间实现Session共享
查看>>
[日常] C语言中的字符数组和字符串
查看>>
Nginx+Keepalived+Tomcat高可用负载均衡,Zookeeper集群配置,Mysql(MariaDB)搭建,Redis安装,FTP配置...
查看>>
from disk cache 与 from memory cache
查看>>
应用图片加载服务与第三方实现库的解耦
查看>>
高并发的核心技术-幂等的实现方案
查看>>
微波炉炖蛋
查看>>
C#调用C/C++ DLL 参数传递和回调函数的总结
查看>>
非spring组件servlet、filter、interceptor中注入spring bean
查看>>
SQL Server中SELECT会真的阻塞SELECT吗?
查看>>
v-for设置键值 key
查看>>