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#
发表评论: