C#:WiFi

写的一个简单启动关闭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;
            }
        }
    }
}

 

posted @ 2015-08-25 10:30  慧由心生  阅读(2364)  评论(0编辑  收藏  举报