using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Windows;
using System.Management;
using System.Net.NetworkInformation;
using System.ServiceProcess;
using System.Threading;
namespace test
{
public partial class Form1 : Form
{
RegistryKey macRegistry ;
RegistryKey parRegistry;
RegistryKey ipRegistry;
RegistryKey proxyRegistry;
public Form1()
{
InitializeComponent();
macRegistry = Registry.LocalMachine.OpenSubKey(\"SYSTEM\").OpenSubKey(\"CurrentControlSet\").OpenSubKey(\"Control\").OpenSubKey(\"Class\").OpenSubKey(\"{4D36E972-E325-11CE-BFC1-08002bE10318}\").OpenSubKey(\"0010\",true);//mac的注册表建所在
parRegistry = Registry.LocalMachine.OpenSubKey(\"SYSTEM\").OpenSubKey(\"CurrentControlSet\").OpenSubKey(\"Services\").OpenSubKey(\"Tcpip\").OpenSubKey(\"Parameters\");//IP的注册表建所在
proxyRegistry =Registry.CurrentUser.OpenSubKey(\"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\",true);
ipRegistry = parRegistry.OpenSubKey(\"Interfaces\").OpenSubKey(macRegistry.GetValue(\"NetCfgInstanceId\").ToString(),true);
}
private void Form1_Load(object sender, EventArgs e)
{
if (macRegistry.GetValue(\"NetworkAddress\") == null)
label1.Text = \"默认MAC地址\";
else
label1.Text = macRegistry.GetValue(\"NetworkAddress\").ToString();
}
private bool SetNetworkAdapter(bool status)
{
const string discVerb = \"停用(&B)\";
const string connVerb = \"启用(&A)\";
const string network = \"网络连接\";
const string networkConnection = \"本地连接\";
string sVerb;
if (status)
{
sVerb = connVerb;
}
else
{
sVerb = discVerb;
}
Shell32.Shell sh = new Shell32.Shell();
Shell32.Folder folder;
folder = sh.NameSpace(3); //Shell32.ShellSpecialFolderConstants.ssfCONTROLS
try
{
//进入控制面板的所有选项
foreach (Shell32.FolderItem myItem in folder.Items())
{
//进入网络和拔号连接
if (myItem.Name == network)
{
Shell32.Folder fd = (Shell32.Folder)myItem.GetFolder;
foreach (Shell32.FolderItem fi in fd.Items())
{
//找到本地连接
if (fi.Name.IndexOf(networkConnection) > -1)
{
//找本地连接的所有右键功能菜单
foreach (Shell32.FolderItemVerb Fib in fi.Verbs())
{
if (Fib.Name == sVerb)
{
Fib.DoIt();
return true;
}
}
}
}
}
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
return false;
}
;
return false;
}
private void button1_Click(object sender, EventArgs e)
{
SetNetworkAdapter(false);
macRegistry.DeleteValue(\"NetworkAddress\",false);
ipRegistry.SetValue(\"IPAddress\", new string[] { \"192.168.1.0\"},RegistryValueKind.MultiString);
proxyRegistry.SetValue(\"ProxyServer\", \"192.168.1.00:808\");
timer1.Start();
}
private void button2_Click(object sender, EventArgs e)
{
SetNetworkAdapter(false);
macRegistry.SetValue(\"NetworkAddress\", \"000000000000\");
ipRegistry.SetValue(\"IPAddress\", new string[] { \"192.168.1.00\" }, RegistryValueKind.MultiString);
proxyRegistry.SetValue(\"ProxyServer\", \"192.168.1.0:8080\");
timer1.Start();
}
private void button3_Click(object sender, EventArgs e)
{
SetNetworkAdapter(false);
macRegistry.SetValue(\"NetworkAddress\", \"000000000000\", RegistryValueKind.String);
ipRegistry.SetValue(\"IPAddress\", new string[] { \"192.168.1.00\" }, RegistryValueKind.MultiString);
proxyRegistry.SetValue(\"ProxyServer\", \"192.168.1.0:8080\");
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (SetNetworkAdapter(true))
{
timer1.Stop();
}
}
}
}