您的位置:首页 > 编程语言 > C#

C#中调用命令行cmd开启wifi热点

2013-04-13 19:04 363 查看
最近想在win7上开启wifi热点,于是就弄出下面这个小东西,里面涉及如何在控制台上输入命令,分享一下。首先在VS中创建一个window窗口,然后创建两个四个button,两个输入框。如图所示:



要点1:cmd命令行的输入命令
netsh wlan set hostednetwork mode=allow ssid=用户名 key=密码
netsh wlan start hostednetwork
netsh waln stop hostednetwork
netsh interface ip set address name="本地连接" source=dhcp

要点2:在C#中调用cmd.exe命令行
private void create(string str)
{
//process用于调用外部程序
System.Diagnostics.Process p = new System.Diagnostics.Process();
//调用cmd.exe
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();
//睡眠1s。
System.Threading.Thread.Sleep(1000);
//输入命令
p.StandardInput.WriteLine(str);
//一定要关闭。
p.StandardInput.WriteLine("exit");
}

详细的代码如下:

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;

namespace wifi01

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

//“创建wifi热点”按钮

private void button1_Click(object sender, EventArgs e)

{

string str;

string userName = textBox1.Text;

string password = textBox2.Text;

if (password.Length >= 8 && userName != null)

{

//
命令行输入命令,用来新建wifi

str="netsh wlan set hostednetwork mode=allow ssid="+userName+" key="+password;

create(str);

MessageBox.Show("新建了wifi热点",

"新建成功",

MessageBoxButtons.OK,

MessageBoxIcon.Information);

label4.Text = "新建了wifi热点";

}

else

{

MessageBox.Show("你的账号为空或你的密码长度小于8",

"登陆失败",

MessageBoxButtons.OK,

MessageBoxIcon.Exclamation);

}

}

//"开启wifi"按钮

private void button2_Click(object sender, EventArgs e)

{

//
命令行输入命令,

string str = "netsh wlan start hostednetwork";

create(str);

label4.Text = "已启动wifi热点";

}

//“关闭wifi”按钮

private void button3_Click(object sender, EventArgs e)

{

//
命令行输入命令,

string str = "netsh wlan stop hostednetwork";

create(str);

label4.Text = "已关闭wifi热点";

}

//在cmd控制台输入命令,

private void create(string str)
{
//process用于调用外部程序
System.Diagnostics.Process p = new System.Diagnostics.Process();
//调用cmd.exe
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();
//睡眠1s。
System.Threading.Thread.Sleep(1000);
//输入命令
p.StandardInput.WriteLine(str);
//一定要关闭。
p.StandardInput.WriteLine("exit");
}

//自动IP连接 按钮

private void button4_Click(object sender, EventArgs e)

{

//
命令行输入命令,用来自动连接wifi:netsh interface ip set address name="本地连接" source=dhcp

string str="netsh interface ip set address name=\"本地连接\" source=dhcp";

string str1 = "锐捷是否提示你设置自动获取IP\n"+"或你想自动获取IP,请按确定";

DialogResult result = MessageBox.Show(str1,"自动连接IP",

MessageBoxButtons.OKCancel,MessageBoxIcon.Information);

if (result == DialogResult.OK)

{

create(str);

label4.Text = "锐捷自动获取IP";

}

}

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: