c# 不到100行代码一键搭建Wifi热点

2014-10-14 Linyuting.cn 程序设计

    闲的蛋疼之时,注意到校园网H3C iNode只要打开腾讯、360、金山等的wifi共享时总是会起冲突而断网。

    蛋疼之余在网上搜搜了一些关于wifi热点搭建的知识,了解到在vista以上版本的系统自带关于什么netsh的cmd命令,自己手动试了下也可以用,专业学的C#,所以用c#写了个简单的wifi热点搭建工具。主要原理就是运行一个cmd窗口,然后运行这些命令即可、

    窗体有3个label、2个textbox和1个button。以下是代码


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 WlanLaunch

{

    public partial class Form1 : Form

    {

        public bool enableAP = false;

        Point mouseOffSet;//关于鼠标拖动

        Process p = new Process();//用来创建cmd新进程的

 

        public Form1()

        {

            InitializeComponent();

        }

 

        public string RunCMD(string cmd)

        {

            p.StartInfo.FileName = "cmd.exe";

            p.StartInfo.UseShellExecute = false;

            p.StartInfo.RedirectStandardInput = true;//可能接受来自调用程序的输入信息

            p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息

            p.StartInfo.CreateNoWindow = true;//隐藏窗口

            p.Start();//启动程序

            p.StandardInput.WriteLine(cmd);

            p.StandardInput.WriteLine("exit");

            string cmdOutput = p.StandardOutput.ReadToEnd();

            p.WaitForExit();

            p.Close();

            return cmdOutput;

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            string str;

 

            if (enableAP)

            {

                button1.Text = "正在关闭...";

                str = RunCMD("netsh wlan stop hostednetwork");//停止热点

                enableAP = false;

                button1.Text = "配置热点";

                APPassword.Enabled = true;

                APName.Enabled = true;

            }

            else

            {

                button1.Text = "正在配置...";

                button1.Enabled = false;

                APPassword.Enabled = false;

                APName.Enabled = false;

                str = RunCMD("netsh wlan set hostednetwork mode=disallow");//停用之前设置的热点

                str += RunCMD("netsh wlan set hostednetwork mode=allow ssid=\"" + APName.Text + "\" key=\"" + APPassword.Text + "\"");//设置热点

                str += RunCMD("netsh wlan start hostednetwork");//启动热点

                button1.Text = "停止热点";

                button1.Enabled = true;

                ShowState.Text = "成功启动Wifi!";

                timer1.Interval = 5000;

                timer1.Start();

                enableAP = true;

            }

        }

 

        private void Form1_MouseDown(object sender, MouseEventArgs e)

        {

            mouseOffSet = new Point(-e.X,-e.Y);

        }

 

        private void Form1_MouseMove(object sender, MouseEventArgs e)

        {

            if (e.Button == MouseButtons.Left)

            {

                Point mousePos = Control.MousePosition;

                mousePos.Offset(mouseOffSet.X,mouseOffSet.Y);

                Location = mousePos;

            }

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            this.Close();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            WindowState = FormWindowState.Minimized;

        }

 

        private void timer1_Tick(object sender, EventArgs e)

        {

            ShowState.Text = "";

            timer1.Stop();

        }

    }

}


    

标签: c#

发表评论:

本站由emlog驱动 粤ICP备15042739号