-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFormMain.cs
148 lines (134 loc) · 5.81 KB
/
FormMain.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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;
using Microsoft.Win32;
using System.Diagnostics;
namespace NetworkCleaner
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void FormMain_Load(object sender, EventArgs e)
{
string Pid = Process.GetCurrentProcess().Id.ToString();
Version Ver = new Version(Application.ProductVersion);
Text += " v" + Ver.Major + "." + Ver.Minor + "." + Ver.Build + "." + Ver.MinorRevision + " PID:" + Pid;
FlushList();
}
private void FlushList()
{
treeViewReg.Nodes.Clear();
var NodeRoot = treeViewReg.Nodes.Add("网络列表");
RegistryKey Reg = Registry.LocalMachine;
var RegUnmanaged = Reg.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged\", true);
var Keys = RegUnmanaged.GetSubKeyNames();
for (int i = 0; i < Keys.Length; i++)
{
NetworkInfo Info = new NetworkInfo();
Info.KeyName = Keys[i];
var RegNetwork = RegUnmanaged.OpenSubKey(Keys[i]);
Info.Name = RegNetwork.GetValue("Description").ToString();
Info.Guid = RegNetwork.GetValue("ProfileGuid").ToString();
var node = NodeRoot.Nodes.Add(Info.Name);
node.Tag = Info;
}
NodeRoot.ExpandAll();
Reg.Close();
}
private void treeViewReg_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Level == 0)
for (int i = 0; i < e.Node.Nodes.Count; i++)
e.Node.Nodes[i].Checked = e.Node.Checked;
}
private void treeViewReg_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
toolStripButtonRename.Enabled = e.Node.Level > 0;
}
private void toolStripButtonFlush_Click(object sender, EventArgs e)
{
FlushList();
}
private void toolStripButtonDel_Click(object sender, EventArgs e)
{
int Count = 0;
for (int i = 0; i < treeViewReg.Nodes[0].Nodes.Count; i++)
{
if (treeViewReg.Nodes[0].Nodes[i].Checked)
Count++;
}
if (Count == 0)
{
MessageBox.Show(this, "至少选中一个网络进行删除", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string Msg = "确定要删除选中网络?";
if (treeViewReg.Nodes[0].Nodes.Count == Count)
Msg = "确定要全删光一个不留???";
if (MessageBox.Show(this, Msg, Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
for (int i = 0; i < treeViewReg.Nodes[0].Nodes.Count; i++)
if (treeViewReg.Nodes[0].Nodes[i].Checked)
{
NetworkInfo networkInfo = (NetworkInfo)treeViewReg.Nodes[0].Nodes[i].Tag;
RegistryKey Reg = Registry.LocalMachine;
var RegNet = Reg.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged\" , true);
RegNet.DeleteSubKey(networkInfo.KeyName);
RegNet.Close();
RegNet = Reg.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\", true);
RegNet.DeleteSubKey(networkInfo.Guid);
RegNet.Close();
Reg.Close();
}
FlushList();
}
}
private void toolStripButtonRename_Click(object sender, EventArgs e)
{
if (treeViewReg.SelectedNode.Level > 0)
{
NetworkInfo networkInfo = (NetworkInfo)treeViewReg.SelectedNode.Tag;
var Frm = new FormRename(networkInfo, new DelegateNetworkInfo(SetNetworkName));
Frm.ShowDialog();
FlushList();
}
}
private void toolStripButtonAbout_Click(object sender, EventArgs e)
{
Version Ver = new Version(Application.ProductVersion);
string Msg = Text;
DateTime dtbase = new DateTime(2000, 1, 1, 0, 0, 0);//微软编译基准时间
TimeSpan tsbase = new TimeSpan(dtbase.Ticks);
TimeSpan tsv = new TimeSpan(tsbase.Days + Ver.Build, 0, 0, Ver.Revision * 2);//编译时间,注意修订号要*2
DateTime dtv = new DateTime(tsv.Ticks);//转换成编译时间
Msg += "\nRelease Time : " + dtv.ToString() + "\n\nBy Hke\nWuHansen.Com";
MessageBox.Show(this, Msg, Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void SetNetworkName(NetworkInfo networkInfo, string Name)
{
RegistryKey Reg = Registry.LocalMachine;
var RegNet = Reg.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged\"+ networkInfo.KeyName, true);
RegNet.SetValue("Description", Name);
RegNet.SetValue("FirstNetwork", Name);
RegNet.Close();
RegNet = Reg.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\" + networkInfo.Guid, true);
RegNet.SetValue("ProfileName", Name);
RegNet.Close();
Reg.Close();
}
}
public class NetworkInfo
{
public string Name;
public string Guid;
public string KeyName;
}
}