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

C#程序如何实现设置系统WIFI共享

2015-10-03 14:34 537 查看
1、以管理员身份运行命令提示符:

快捷键win+R(win+X 以管理员方式运行CMD)→输入cmd→回车

2、启用并设定虚拟WiFi网卡:

运行命令:netsh wlan set hostednetwork mode=allow ssid=mywifi key=12345678

此命令有三个参数,mode:是否启用虚拟WiFi网卡,改为disallow则为禁用。

ssid:无线网名称,最好用英文(以mywifi为例)。

key:无线网密码,八个以上字符(以12345678为例)。

以上三个参数可以单独使用,例如只使用mode=disallow可以直接禁用虚拟Wifi网卡。

2,开启成功后,网络连接中会多出一个网卡为“Microsoft Virtual WiFi Miniport Adapter”的无线连接。若没有,只需更新无线网卡驱动就OK了。

3、设置Internet连接共享:

在“网络连接”窗口中,右键单击已连接到Internet的网络连接,选择“属性”→“共享”,勾上“允许其他······连接(N)”并选择“虚拟WiFi”。

确定之后,提供共享的网卡图标旁会出现“共享的”字样,表示“宽带连接”已共享至“虚拟WiFi”。

4、开启无线网络:

继续在命令提示符中运行:netsh wlan start hostednetwork

(将start改为stop即可关闭该无线网,以后开机后要启用该无线网只需再次运行此命令即可)

至此,虚拟WiFi的红叉叉消失,WiFi基站已组建好。笔记本、带WiFi模块的手机等子机搜索到无线网络mywifi,输入密码12345678,就能共享上网啦!

C#实现:

public static string Execute(string command, int seconds)

{

string output = ""; //输出字符串

if (command != null && !command.Equals(""))

{

Process process = new Process();//创建进程对象

ProcessStartInfo startInfo = new ProcessStartInfo();

startInfo.FileName = @"c:\windows\system32\cmd.exe";//设定需要执行的命令

startInfo.Arguments = "/C " + command;//“/C”表示执行完命令后马上退出

startInfo.UseShellExecute = false;//不使用系统外壳程序启动

startInfo.RedirectStandardInput = false;//不重定向输入

startInfo.RedirectStandardOutput = true; //重定向输出

startInfo.CreateNoWindow = true;//不创建窗口

startInfo.Verb = "runas";

process.StartInfo = startInfo;

try

{

if (process.Start())//开始进程

{

if (seconds == 0)

{

process.WaitForExit();//这里无限等待进程结束

}

else

{

process.WaitForExit(seconds); //等待进程结束,等待时间为指定的毫秒

}

output = process.StandardOutput.ReadToEnd();//读取进程的输出

}

}

catch

{

}

finally

{

if (process != null)

process.Close();

}

}

return output;

}

调用DOS 命令,并设置程序以管理员方式运行。

string command = "netsh wlan set hostednetwork mode=allow ssid=" + textName.Text + " key=" + textPsw.Text;

string str2 = Execute(command);

MessageBox.Show(str2);

if (((str2.IndexOf("承载网络模式已设置为允许") > -1) && (str2.IndexOf("已成功更改承载网络的 SSID。") > -1)) && (str2.IndexOf("已成功更改托管网络的用户密钥密码。") > -1))

{

ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "新建共享网络成功!");

}

else

{

ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "搭建失败,请重试!");

}

str2 = Execute("netsh wlan start hostednetwork");

MessageBox.Show(str2);

if (str2.IndexOf("已启动承载网络") > -1)

{

ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "已启动承载网络!");

}

else

{

ListBoxLogs.AddCtrlValue(this, sysLogs, DateTime.Now.ToString("HH:mm:ss") + "---" + "承载失败,请尝试新建网络共享!");

}

EnableInternetConnectionSharing(); //相当于上边的地3步 用程序设置共享 需要引用 Windows\system32\下的hnetcfg.dll

// "netsh wlan set hostednetwork mode=disallow" 删除WIFI

//netsh wlan stop hostednetwork 停止WIFI

需要的命令集

using System.Diagnostics;//这个是进行dos命令调用

using NETCONLib; //hnetcfg.dll

运行添加 在启动并设置共享以后就可以共享WIFI了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: