WiFi共享工具源码非常强大

 
  
 
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Windows.Forms;using VirtualRouterPlus.Properties;namespace VirtualRouterPlus{  public partial class MainForm : Form  {    WlanManager wlanManager = new WlanManager();    IcsManager icsManager = new IcsManager();    bool isStarted;    public MainForm()    {      InitializeComponent();    }    private void MainForm_Load(object sender, EventArgs e)    {      wlanManager.HostedNetworkAvailable = wlanManager_HostedNetworkAvailable;      wlanManager.StationJoin = wlanManager_StationJoin;      RefreshConnection();      ssidTextBox.Text = Settings.Default.SSID;      passwordTextBox.Text = Settings.Default.Password;      foreach (IcsConnection connection in connectionComboBox.Items)      {        if (connection.Name == Settings.Default.Connection)        {          connectionComboBox.SelectedItem = connection;          break;        }      }    }    void wlanManager_StationJoin(object sender, EventArgs e)    {          }    void wlanManager_HostedNetworkAvailable(object sender, EventArgs e)    {          }    private void MainForm_FormClosing(object sender, FormClosingEventArgs e)    {      Settings.Default.SSID = ssidTextBox.Text;      Settings.Default.Password = passwordTextBox.Text;      Settings.Default.Connection = connectionComboBox.Text;      Settings.Default.Save();      Stop();    }    private void startButton_Click(object sender, EventArgs e)    {      startButton.Enabled = false;      ssidTextBox.Enabled = false;      passwordTextBox.Enabled = false;      connectionComboBox.Enabled = false;      refreshConnectionButton.Enabled = false;      startButton.Text = "等待硬件响应中...";      if (isStarted)      {        if (Stop())        {          isStarted = false;          notifyIcon.ShowBalloonTip(5000, "成功", "成功停止无线虚拟路由器!", ToolTipIcon.Info);        }        else        {          MessageBox.Show("无法停止!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);        }      }      else      {        if (!ValidateFields())          return;        if (Start(ssidTextBox.Text, passwordTextBox.Text, (IcsConnection)connectionComboBox.SelectedItem, 16))        {          isStarted = true;          WindowState = FormWindowState.Minimized;          notifyIcon.ShowBalloonTip(5000, "成功", "成功启动无线虚拟路由器!", ToolTipIcon.Info);        }        else        {          MessageBox.Show("无法启动虚拟无线路由器,未找到支持的硬件或无线网卡被禁用!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);        }      }      notifyIcon.Icon = new Icon(isStarted ? "VirtualRouterPlusStarted.ico" : "VirtualRouterPlusStopped.ico");      startButton.Text = isStarted ? "停止虚拟无线路由器" : "启动虚拟无线路由器";            ssidTextBox.Enabled = !isStarted;      passwordTextBox.Enabled = !isStarted;      connectionComboBox.Enabled = !isStarted;      refreshConnectionButton.Enabled = !isStarted;      startButton.Enabled = true;    }    private bool Start(string ssid, string password, IcsConnection connection, int maxClients)    {      try      {        Stop();        wlanManager.SetConnectionSettings(ssid, 32);        wlanManager.SetSecondaryKey(password);        wlanManager.StartHostedNetwork();        var privateConnectionGuid = wlanManager.HostedNetworkInterfaceGuid;        icsManager.EnableIcs(connection.Guid, privateConnectionGuid); return true;      }      catch      {        return false;      }    }    private bool Stop()    {      try      {        if (this.icsManager.SharingInstalled)        {          this.icsManager.DisableIcsOnAll();        }        this.wlanManager.StopHostedNetwork();        return true;      }      catch      {        return false;      }    }    private bool ValidateFields()    {      if (ssidTextBox.Text.Length <= 0)      {        errorProvider.SetError(ssidTextBox, "无线名称 (SSID)必须填写!");        return false;      }      if (ssidTextBox.Text.Length > 32)      {        errorProvider.SetError(ssidTextBox, "无线名称 (SSID)不能超过32个字符!");        return false;      }      if (passwordTextBox.Text.Length < 8)      {        errorProvider.SetError(ssidTextBox, "无线密码至少为8位!");        return false;      }      if (passwordTextBox.Text.Length > 64)      {        errorProvider.SetError(ssidTextBox, "无线密码不能超过46个字符!");        return false;      }      return true;    }    private void refreshConnectionButton_Click(object sender, EventArgs e)    {      RefreshConnection();    }    private void RefreshConnection()    {      connectionComboBox.Items.Clear();      foreach (var connection in icsManager.Connections)      {        if (connection.IsConnected && connection.IsSupported)        {          connectionComboBox.Items.Add(connection);        }      }      if (connectionComboBox.Items.Count > 0)        connectionComboBox.SelectedIndex = 0;    }    private void MainForm_SizeChanged(object sender, EventArgs e)    {      if (WindowState == FormWindowState.Minimized)      {        Hide();      }    }    private void notifyIcon_MouseClick(object sender, MouseEventArgs e)    {      Show();      WindowState = FormWindowState.Normal;    }  }}

 
  
					
				
评论