-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathForm1.cs
More file actions
85 lines (75 loc) · 3.11 KB
/
Form1.cs
File metadata and controls
85 lines (75 loc) · 3.11 KB
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
using System;
using System.Windows.Forms;
using System.Management;
namespace ChangeDNS
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Gán sự kiện CheckedChanged cho các RadioButton
DNS_1.CheckedChanged += new EventHandler(DNS_CheckedChanged);
DNS_2.CheckedChanged += new EventHandler(DNS_CheckedChanged);
// Gán sự kiện Click cho nút Apply And Exit
button1.Click += new EventHandler(button1_Click);
}
private void DNS_CheckedChanged(object sender, EventArgs e)
{
// Không thực hiện thay đổi DNS ngay, chỉ lưu trạng thái
// Thay đổi sẽ được áp dụng khi nhấn nút "Apply And Exit"
}
private void button1_Click(object sender, EventArgs e)
{
// Kiểm tra RadioButton nào được chọn và thay đổi DNS
if (DNS_1.Checked)
{
SetDNS(""); // Đặt lại DNS mặc định (DHCP)
MessageBox.Show("Đã đặt DNS thành mặc định!");
}
else if (DNS_2.Checked)
{
SetDNS("8.8.8.8,8.8.4.4"); // Đặt DNS của Google
MessageBox.Show("Đã đặt DNS thành Google DNS!");
}
// Đóng ứng dụng sau khi áp dụng
Application.Exit();
}
private void SetDNS(string dns)
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
ManagementObjectCollection collection = searcher.Get();
foreach (ManagementObject obj in collection)
{
ManagementBaseObject inParams = obj.GetMethodParameters("SetDNSServerSearchOrder");
if (string.IsNullOrEmpty(dns))
{
inParams["DNSServerSearchOrder"] = null; // Đặt lại thành DHCP (mặc định)
}
else
{
inParams["DNSServerSearchOrder"] = dns.Split(','); // Set DNS Google
}
ManagementBaseObject outParams = obj.InvokeMethod("SetDNSServerSearchOrder", inParams, null);
if ((uint)outParams["ReturnValue"] != 0)
{
MessageBox.Show("Không thể thay đổi DNS. Vui lòng kiểm tra quyền admin.");
}
}
}
catch (Exception ex)
{
MessageBox.Show("Lỗi: " + ex.Message);
}
}
private void DNS_1_CheckedChanged(object sender, EventArgs e)
{
// Sự kiện này đã được gán trong Form1_Load, không cần thêm code ở đây
}
}
}