C#程序如何實現設置系統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:\windows\system32\cmd.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步 用程序設置共享 需要引用 Windows\system32\下的hnetcfg.dll
            // "netsh wlan set hostednetwork mode=disallow" 刪除WIFI
            //netsh wlan stop hostednetwork 停止WIF
I

需要的命令集

using System.Diagnostics;//這個是進行dos命令調用
using NETCONLib; //hnetcfg.dll

運行添加 在啓動並設置共享以後就可以共享WIFI了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章