zoukankan      html  css  js  c++  java
  • 利用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         }
  • 相关阅读:
    Xpath语法与lxml库的用法
    Selenium--使用参考
    PhantomJS的替代品--无头浏览器(Headless Chrome)
    为什么只有一个元素的tuple要加逗号?
    反爬利器--设置代理服务器
    LeetCode 221. 最大正方形 | Python
    LeetCode 572. 另一个树的子树 | Python
    LeetCode 98. 验证二叉搜索树 | Python
    LeetCode 45. 跳跃游戏 II | Python
    LeetCode 25. K 个一组翻转链表 | Python
  • 原文地址:https://www.cnblogs.com/trying/p/2863744.html
Copyright © 2011-2022 走看看