C# 我写了一个用SSID连接wifi的代码,但我可以';我不明白为什么';它不工作了
这是一份申请表 我正在使用:C# 我写了一个用SSID连接wifi的代码,但我可以';我不明白为什么';它不工作了,c#,wifi,C#,Wifi,这是一份申请表 我正在使用: using System; using System.Windows.Forms; using System.Diagnostics; using System.Security.Principal; 这是我的代码: Process NewProcess = new Process(); public Form1() { InitializeComponent(); NewProcess.StartInfo
using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.Security.Principal;
这是我的代码:
Process NewProcess = new Process();
public Form1()
{
InitializeComponent();
NewProcess.StartInfo.UseShellExecute = false;
NewProcess.StartInfo.CreateNoWindow = true;
NewProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
}
检查用户是否为管理员
public bool IsUserAdmin()
{
bool isAdmin;
try
{
WindowsIdentity user = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(user);
isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
}
catch(UnauthorizedAccessException)
{
isAdmin = false;
}
catch(Exception)
{
isAdmin = false;
}
return isAdmin;
}
停止广播
public void StopBroadcasting()
{
NewProcess.StartInfo.FileName = "netsh";
NewProcess.StartInfo.Arguments = "wlan Stop hostednetwork";
try
{
using (Process execute = Process.Start(NewProcess.StartInfo))
{
execute.WaitForExit();
SetLanDetails();
}
}
catch
{
}
}
public void StartBroadcasting()
{
NewProcess.StartInfo.FileName = "netsh";
NewProcess.StartInfo.Arguments = "wlan start hostendnetwork";
try
{
using (Process execute = Process.Start(NewProcess.StartInfo))
{
execute.WaitForExit();
buttonStart.Text = "Stop";
}
}
catch
{
}
}
设置局域网详细信息
public void SetLanDetails()
{
NewProcess.StartInfo.FileName = "netsh";
NewProcess.StartInfo.Arguments = "wlan set hostednetwork mode=allow ssid="+textBox1.Text+" key="+ textBox2.Text;
try
{
using (Process execute = Process.Start(NewProcess.StartInfo))
{
execute.WaitForExit();
StartBroadcasting();
}
}
catch
{
}
}
开始广播
public void StopBroadcasting()
{
NewProcess.StartInfo.FileName = "netsh";
NewProcess.StartInfo.Arguments = "wlan Stop hostednetwork";
try
{
using (Process execute = Process.Start(NewProcess.StartInfo))
{
execute.WaitForExit();
SetLanDetails();
}
}
catch
{
}
}
public void StartBroadcasting()
{
NewProcess.StartInfo.FileName = "netsh";
NewProcess.StartInfo.Arguments = "wlan start hostendnetwork";
try
{
using (Process execute = Process.Start(NewProcess.StartInfo))
{
execute.WaitForExit();
buttonStart.Text = "Stop";
}
}
catch
{
}
}
停止进程
public void StopProcess()
{
NewProcess.StartInfo.FileName = "netsh";
NewProcess.StartInfo.Arguments = "wlan stop hostendnetwork";
try
{
using (Process execute = Process.Start(NewProcess.StartInfo))
{
execute.WaitForExit();
}
}
catch
{
}
}
开始按钮点击
private void buttonStart_Click(object sender, EventArgs e)
{
if(buttonStart.Text=="Start")
{
StopBroadcasting();
buttonStart.Text = "Stop";
}
else
{
StopProcess();
buttonStart.Text = "Start";
}
}
我不明白为什么它不起作用。我忘了什么吗?我没有找到这样做的原因。有人知道它为什么不工作?我会从检查trycatch子句实际捕获的内容开始…我在每段代码后添加MessageBox,我可以看到代码从头到尾都完成了。