C#-WiFi共享

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace wifiGX
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public int wifikg = 0;
        private void Form1_Load(object sender, EventArgs e)
        {


        }
        //cmd调用
        private  string InvokeCmd(string cmdArgs)
        {
            string Tstr = "";
            Process p = new Process();
            p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError = true;
            p.StartInfo.CreateNoWindow = true;
            p.Start();

            p.StandardInput.WriteLine(cmdArgs);
            p.StandardInput.WriteLine("exit");
            Tstr = p.StandardOutput.ReadToEnd();
            p.Close();
            return Tstr;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (okmima == 1 && okmingzi == 1)
            {
                try
                {
                    string mingling = "netsh wlan set hostednetwork mode=allow ssid=" + mingzi.Text + " key=" + mima.Text;
                    string str = InvokeCmd(mingling);
                    richTextBox1.Text = str;
                    int cg = 0;
                    for (int i = 0; i < str.Length - 2; i++)
                        if (str.Substring(i, 2) == "成功")
                            cg++;
                    if (cg == 2)
                    {
                        richTextBox1.Text = "承载网络模式已设置为允许。
已成功更改承载网络的 SSID。
已成功更改托管网络的用户密钥密码。
";
                    }
                    else
                    {
                        richTextBox1.Text = " 系统函数调用错误,可能原因是账号密码不规则(密码尽量只用数字和字母)";
                    }


                }
                catch
                {
                    richTextBox1 .Text =" 系统函数调用错误,可能原因是账号密码不规则(密码尽量只用数字和字母)";
                }
            }
            else
            {
                MessageBox.Show("wifi名字或者密码长度不符合要求");
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                string mingling = "netsh wlan start hostednetwork";
                string str = InvokeCmd(mingling);
                int mk = 0;
                for(int i = 0;i < str.Length - 7;i ++)  
                {
                    if (str.Substring(i, 7) == "已启动承载网络")
                    {
                        mk = 1;
                        richTextBox1.Text = "已启动承载网络";
                        wifikg = 1;
                    }
                 }
                if (mk == 0) richTextBox1.Text = "启动失败!";
                else
                {
                    if (wifikg == 0)
                    {
                        richTextBox2.Text = "wifi未开启,暂无设置信息!";
                        richTextBox3.Text = "wifi未开启,暂无状态信息!";
                    }
                    else
                        try
                        {
                            mingling = "netsh wlan show hostednetwork";
                            str = InvokeCmd(mingling);
                            int s1 = 0, s2 = 0, s = 0, s3 = 0;
                            for (int i = 0; i < str.Length - 6; i++)
                            {
                                if (str.Substring(i, 6) == "承载网络设置")
                                    s1 = i;
                                if (str.Substring(i, 6) == "承载网络状态")
                                    s2 = i;
                                if (s2 != 0 && str.Substring(i, 1) == "
") s++;
                                if (s == 7 && s3 == 0) s3 = i;
                            }
                            richTextBox2.Text = str.Substring(s1, s2 - s1);
                            richTextBox3.Text = str.Substring(s2, s3 - s2);
                        }
                        catch
                        {
                            richTextBox2.Text = "信息更新失败!";
                            richTextBox3.Text = "信息更新失败!";
                        }
                }
            }
            catch
            {
                richTextBox1.Text = "启动失败!";
            }

        }

        private void button3_Click(object sender, EventArgs e)
        {
            //已停止承载网络
            try
            {
                string mingling = "netsh wlan stop hostednetwork";
                string str = InvokeCmd(mingling);
                int mk = 0;
                for (int i = 0; i < str.Length - 7; i++)
                {
                    if (str.Substring(i, 7) == "已停止承载网络")
                    {
                        mk = 1;
                        richTextBox1.Text = "已停止承载网络";
                        wifikg = 0;
                    }
                }
                if (mk == 0) richTextBox1.Text = "停止失败!";
            }
            catch
            {
                richTextBox1.Text = "停止失败!";
            }
        }
        int okmingzi = 0;
        int okmima = 0;
        private void mima_TextChanged(object sender, EventArgs e)
        {
            if (mima.Text.Length >= 8 && mima.Text.Length <= 12)
            {
                label1.Text = "Yes";
                label1.ForeColor = Color.Green;
                okmima  = 1;
            }
            else
            {
                label1.Text = "No";
                label1.ForeColor = Color.Red ;
                okmima  = 0;
            }
        }

        private void mingzi_TextChanged(object sender, EventArgs e)
        {
            if (mingzi.Text.Length >= 1 && mingzi.Text.Length <= 10)
            {
                okmingzi = 1;
                label2.Text = "Yes";
                label2.ForeColor = Color.Green;
            }
            else
            {
                okmingzi = 0;
                label2.Text = "No";
                label2.ForeColor = Color.Red;
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if(wifikg == 1)
            try
            {
                string mingling = "netsh wlan stop hostednetwork";
                string str = InvokeCmd(mingling);
                int mk = 0;
                for (int i = 0; i < str.Length - 7; i++)
                {
                    if (str.Substring(i, 7) == "已停止承载网络")
                    {
                        mk = 1;
                        richTextBox1.Text = "已停止承载网络";
                    }
                }
                if (mk == 0) richTextBox1.Text = "停止失败!";
            }
            catch
            {
                richTextBox1.Text = "停止失败!";
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (wifikg == 0)
            {
                richTextBox2.Text = "wifi未开启,暂无设置信息!";
                richTextBox3.Text = "wifi未开启,暂无状态信息!";
            }
            else
                try
                {
                    string mingling = "netsh wlan show hostednetwork";
                    string str = InvokeCmd(mingling);
                    int s1 = 0, s2 = 0, s = 0, s3 = 0;
                    for (int i = 0; i < str.Length - 6; i++)
                    {
                        if (str.Substring(i, 6) == "承载网络设置")
                            s1 = i;
                        if (str.Substring(i, 6) == "承载网络状态")
                            s2 = i;
                        if (s2 != 0 && str.Substring(i, 1) == "
") s++;
                        if (s == 7 && s3 == 0) s3 = i;
                    }
                    richTextBox2.Text = str.Substring(s1, s2 - s1);
                    richTextBox3.Text = str.Substring(s2, s3 - s2);
                }
                catch
                {
                    richTextBox2.Text = "信息更新失败!";
                    richTextBox3.Text = "信息更新失败!";
                }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.Show();
        }
    }
}

原文地址:https://www.cnblogs.com/csnd/p/12062161.html