C#:WiFi 搭建与共享

来源:互联网 发布:淘宝收藏的宝贝失效了 编辑:程序博客网 时间:2024/06/05 12:08

写的一个简单启动关闭WiFi的类:具体如下

复制代码
using System;using System.Collections.Generic;using System.Text;using System.Diagnostics;namespace MyWifi{    public class WiFi    {        #region 单例        //private static WiFi instance = null;        //private static object objLock = new object();        //private WiFi()        //{ }        //public static WiFi Singlon()        //{        //    if (instance == null)        //    {         //        lock(objLock)        //        {        //            if (instance == null)        //            {        //                instance = new WiFi();        //            }        //        }        //    }        //    return instance;        //}        #endregion        private static string executeCmd(string command)        {            Process process = new Process            {                StartInfo = { FileName = " cmd.exe ", UseShellExecute = false, RedirectStandardInput = true, RedirectStandardOutput = true, CreateNoWindow = true }            };            process.Start();            process.StandardInput.WriteLine(command);            process.StandardInput.WriteLine("exit");            process.WaitForExit();            string str = process.StandardOutput.ReadToEnd();            process.Close();            return str;        }        /// <summary>        /// 共享网络        /// </summary>        /// <param name="wifiName">WiFi名称</param>        /// <param name="wifiPassword">WiFi密码(不少于8位)</param>        /// <returns>"新建共享网络成功!"||"搭建失败,请重试!"</returns>        public static string AllowWiFi(string wifiName, string wifiPassword)        {            string createWifiRet = "搭建失败,请重试!";            try            {                string command = "netsh wlan set hostednetwork mode=allow ssid=" + wifiName.Trim() + " key=" + wifiPassword.Trim();                string cmdExecRet = executeCmd(command);                createWifiRet = cmdExecRet;                if (((createWifiRet.IndexOf("承载网络模式已设置为允许") > -1) && (createWifiRet.IndexOf("已成功更改承载网络的 SSID。") > -1)) && (createWifiRet.IndexOf("已成功更改托管网络的用户密钥密码。") > -1))                {                   createWifiRet = "新建共享网络成功!";                }                return createWifiRet;            }            catch(Exception e)            {                return createWifiRet + "\n\r" + e.Message;            }        }        /// <summary>        /// 禁止共享网络        /// </summary>        /// <returns>disallowWifiRet = "禁止共享网络成功!"||"操作失败,请重试!"</returns>        public static string DisallowWifi()        {            string disallowWifiRet = "操作失败,请重试!";            try            {                string command = "netsh wlan set hostednetwork mode=disallow";                if (executeCmd(command).IndexOf("承载网络模式已设置为禁止") > -1)                {                    disallowWifiRet = "禁止共享网络成功!";                }                return disallowWifiRet;            }            catch(Exception e)            {                return disallowWifiRet + "\n\r" + e.Message;            }        }        /// <summary>        /// 启动承载网络(WiFi)        /// </summary>        /// <returns>"已启动承载网络!"||"启动承载网络失败,请尝试新建网络共享!"</returns>        public static string StartWiFi()        {            string startWifiRet = "启动承载网络失败,请尝试新建网络共享!";            try            {                if (executeCmd("netsh wlan start hostednetwork").IndexOf("已启动承载网络") > -1)                {                    startWifiRet = "已启动承载网络!";                }                return startWifiRet;            }            catch(Exception e)            {                return startWifiRet + "\n\r" + e.Message;            }        }        /// <summary>        /// 停止承载网络(WiFi)        /// </summary>        /// <returns>"已停止承载网络!"||"停止承载网络失败!"</returns>        public static string StopWiFi()        {            string stopWifiRet = "停止承载网络失败!";            try            {                if (executeCmd("netsh wlan stop hostednetwork").IndexOf("已停止承载网络") > -1)                {                    stopWifiRet = "已停止承载网络!";                }                return stopWifiRet;            }            catch(Exception e)            {                return stopWifiRet + "\n\r" + e.Message;            }        }    }}
复制代码