• 程序如何实现设置系统WIFI共享


    1、以管理员身份运行命令提示符:
    快捷键win+R(win+X 以管理员方式运行CMD)→输入cmd→回车
    2、启用并设定虚拟WiFi网卡:
    运行命令:netsh wlan set hostednetwork mode=allow ssid=mywifi key=12345678
    此命令有三个参数,mode:是否启用虚拟WiFi网卡,改为disallow则为禁用。
                                   ssid:无线网名称,最好用英文(以mywifi为例)。
                                   key:无线网密码,八个以上字符(以12345678为例)。
    以上三个参数可以单独使用,例如只使用mode=disallow可以直接禁用虚拟Wifi网卡。
    2,开启成功后,网络连接中会多出一个网卡为“Microsoft Virtual WiFi Miniport Adapter”的无线连接。若没有,只需更新无线网卡驱动就OK了。
    3、设置Internet连接共享:
    在“网络连接”窗口中,右键单击已连接到Internet的网络连接,选择“属性”→“共享”,勾上“允许其他······连接(N)”并选择“虚拟WiFi”。
    确定之后,提供共享的网卡图标旁会出现“共享的”字样,表示“宽带连接”已共享至“虚拟WiFi”。
    4、开启无线网络:
    继续在命令提示符中运行:netsh wlan start hostednetwork
    (将start改为stop即可关闭该无线网,以后开机后要启用该无线网只需再次运行此命令即可)

    至此,虚拟WiFi的红叉叉消失,WiFi基站已组建好。笔记本、带WiFi模块的手机等子机搜索到无线网络mywifi,输入密码12345678,就能共享上网啦!

    C#实现:

        public static string Execute(string command, int seconds)
            {
                string output = ""; //输出字符串  
                if (command != null && !command.Equals(""))
                {
                    Process process = new Process();//创建进程对象  
                    ProcessStartInfo startInfo = new ProcessStartInfo();
                    startInfo.FileName = @"c:windowssystem32cmd.exe";//设定需要执行的命令  
                    startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出  
                    startInfo.UseShellExecute = false;//不使用系统外壳程序启动  
                    startInfo.RedirectStandardInput = false;//不重定向输入  
                    startInfo.RedirectStandardOutput = true; //重定向输出  
                    startInfo.CreateNoWindow = true;//不创建窗口  
                    startInfo.Verb = "runas";
                    process.StartInfo = startInfo;




                    try
                    {
                        if (process.Start())//开始进程  
                        {
                            if (seconds == 0)
                            {
                                process.WaitForExit();//这里无限等待进程结束  
                            }
                            else
                            {
                                process.WaitForExit(seconds); //等待进程结束,等待时间为指定的毫秒  
                            }
                            output = process.StandardOutput.ReadToEnd();//读取进程的输出  
                        }
                    }
                    catch
                    {
                    }
                    finally
                    {
                        if (process != null)
                            process.Close();
                    }
                }
                return output;
            }

    调用DOS 命令,并设置程序以管理员方式运行。

     string command = "netsh wlan set hostednetwork mode=allow ssid=" + textName.Text + " key=" + textPsw.Text;
                string str2 = Execute(command);
                MessageBox.Show(str2);
                if (((str2.IndexOf("承载网络模式已设置为允许") > -1) && (str2.IndexOf("已成功更改承载网络的 SSID。") > -1)) && (str2.IndexOf("已成功更改托管网络的用户密钥密码。") > -1))
                {
                    ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "新建共享网络成功!");
                }
                else
                {
                    ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "搭建失败,请重试!");
                }
                str2 = Execute("netsh wlan start hostednetwork");
                MessageBox.Show(str2);
                if (str2.IndexOf("已启动承载网络") > -1)
                {
                    ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "已启动承载网络!");
                }
                else
                {
                  ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "承载失败,请尝试新建网络共享!");
                }
                EnableInternetConnectionSharing(); //相当于上边的地3步 用程序设置共享 需要引用 Windowssystem32下的hnetcfg.dll
                // "netsh wlan set hostednetwork mode=disallow" 删除WIFI
                //netsh wlan stop hostednetwork 停止WIFI

    需要的命令集

    using System.Diagnostics;//这个是进行dos命令调用
    using NETCONLib; //hnetcfg.dll

    运行添加 在启动并设置共享以后就可以共享WIFI了

  • 相关阅读:
    C++面试题
    kalman滤波原理
    开blog
    Linux图片批处理
    Debian使用相关
    Ubuntu grub引导修复
    Debian系统vim中文显示乱码问题
    Debian配置Apache2支持mod-python和cgi模块
    linux下解压被分割的zip文件
    Ubuntu 16.04 启动错误 "a start job is running for hold until boot process finishes up"
  • 原文地址:https://www.cnblogs.com/dxqNet/p/7070400.html
Copyright © 2020-2023  润新知