• 利用cmd命令创建wifi热点


    核心代码:

      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         }
  • 相关阅读:
    redis数据淘汰策略(转)
    maven中的dependencyManagement
    分布式事务(三)mysql对XA协议的支持
    分布式事务(四)简单样例
    多个@bean无法通过@resource注入对应的bean(org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected single matching bean but found )
    分布式事务(二)Java事务API(JTA)规范
    分布式事务(一)原理概览
    一台电脑支持2个git账号:gitlab+github
    单表千万级数据迁移实践方案-乞丐版,不使用大数据平台
    logback root level logger level 日志级别覆盖?继承?
  • 原文地址:https://www.cnblogs.com/trying/p/2863744.html
Copyright © 2020-2023  润新知