C#修改IP、网关、DNS
、在 “解决方案资源管理器” 右击 “引用” 添加 “System.Management” 的引用。 2、添加 “using System.Management;”。 static void SetNetworkAdapter() { ManagementBaseObject inPar = null; ManagementBaseObject outPar = null; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (!(bool)mo["IPEnabled"]) continue; //设置ip地址和子网掩码 inPar = mo.GetMethodParameters("EnableStatic"); inPar["IPAddress"] = new string[] { "192.168.16.248", "192.168.16.249" };// 1.备用 2.IP inPar["SubnetMask"] = new string[] { "255.255.255.0", "255.255.255.0" }; outPar = mo.InvokeMethod("EnableStatic", inPar, null); //设置网关地址 inPar = mo.GetMethodParameters("SetGateways"); inPar["DefaultIPGateway"] = new string[] { "192.168.16.2", "192.168.16.254" }; // 1.网关;2.备用网关 outPar = mo.InvokeMethod("SetGateways", inPar, null); //设置DNS inPar = mo.GetMethodParameters("SetDNSServerSearchOrder"); inPar["DNSServerSearchOrder"] = new string[] { "211.97.168.129", "202.102.152.3" }; // 1.DNS 2.备用DNS outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null); break; } } C# 开机自动运行程序2007-12-31 12:32string StartupPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Startup); System.IO.File.Copy("应用程序路径(包括程序名)", StartupPath + "执行程序文件名称", true); . . . . . . . . . 根据提供的标题、描述、标签及部分内容,我们可以总结出两个主要的知识点:一是如何使用 C# 修改网络配置(如 IP 地址、网关和 DNS),二是如何让一个 C# 应用程序在开机时自动运行。 ### 知识点一:使用 C# 修改网络配置 在 C# 中,可以通过调用 Windows Management Instrumentation (WMI) 的方法来修改网络适配器的配置,如 IP 地址、子网掩码、默认网关以及 DNS 服务器等信息。以下是一段具体的示例代码及其解析: ```csharp using System; using System.Management; public class NetworkConfigurator { public static void SetNetworkAdapter() { ManagementBaseObject inPar = null; ManagementBaseObject outPar = null; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { // 检查当前适配器是否已启用 if (!(bool)mo["IPEnabled"]) continue; // 设置 IP 地址和子网掩码 inPar = mo.GetMethodParameters("EnableStatic"); inPar["IPAddress"] = new string[] { "192.168.16.248", "192.168.16.249" }; // 第一个为首选 IP,第二个为备用 IP inPar["SubnetMask"] = new string[] { "255.255.255.0", "255.255.255.0" }; outPar = mo.InvokeMethod("EnableStatic", inPar, null); // 设置默认网关 inPar = mo.GetMethodParameters("SetGateways"); inPar["DefaultIPGateway"] = new string[] { "192.168.16.2", "192.168.16.254" }; // 第一个为主网关,第二个为备用网关 outPar = mo.InvokeMethod("SetGateways", inPar, null); // 设置 DNS 服务器 inPar = mo.GetMethodParameters("SetDNSServerSearchOrder"); inPar["DNSServerSearchOrder"] = new string[] { "211.97.168.129", "202.102.152.3" }; // 第一个为主 DNS,第二个为备用 DNS outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null); // 执行完毕后退出循环 break; } } } ``` ### 解析 1. **引用 System.Management**: 需要在项目中添加 `System.Management` 的引用,以便能够访问 WMI 提供的功能。 2. **获取网络适配器实例**: 使用 `ManagementClass` 类创建一个表示 `Win32_NetworkAdapterConfiguration` 类的对象,并通过调用 `GetInstances` 方法获取所有网络适配器的实例。 3. **筛选启用的适配器**: 在遍历过程中,检查每个网络适配器是否已被启用 (`IPEnabled`),若未启用则跳过。 4. **设置 IP 地址和子网掩码**: 通过调用 `EnableStatic` 方法并传入相应的参数,可以设置静态 IP 地址和子网掩码。 5. **设置默认网关**: 同样地,通过调用 `SetGateways` 方法设置默认网关。 6. **设置 DNS 服务器**: 通过调用 `SetDNSServerSearchOrder` 方法来指定 DNS 服务器列表。 ### 知识点二:使 C# 应用程序开机自动运行 为了实现一个 C# 应用程序在系统启动时自动运行,可以采用以下两种方式之一: 1. **将程序快捷方式放置于“启动”文件夹**: ```csharp string startupPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup); string exePath = "应用程序的完整路径"; string shortcutName = "应用程序名称.lnk"; File.Copy(exePath, Path.Combine(startupPath, shortcutName), true); ``` 这里需要注意的是,应该创建一个指向应用程序的快捷方式而不是直接复制应用程序文件到“启动”文件夹。 2. **注册表方法**: ```csharp using Microsoft.Win32; string exeDir = Directory.GetCurrentDirectory() + "\\应用程序名.exe"; RegistryKey key = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true); key.SetValue("应用程序名", exeDir); key.Close(); ``` 这段代码将应用程序的路径写入注册表的 `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run` 键下,以确保每次系统启动时都会自动运行该程序。 以上两种方法都可以实现在系统启动时自动运行 C# 应用程序的目标。根据实际需求选择合适的方法即可。 总结: 通过上述代码和解析,我们不仅了解了如何使用 C# 修改网络配置,还学会了如何让 C# 应用程序开机自动运行。这些技巧对于开发需要高度定制化配置的应用程序非常有用。希望这些知识点能够帮助你在开发工作中更加得心应手。
- luckydog0022012-11-19程序运行正常
- l2335981362013-06-07有错误,跑不通
- 粉丝: 11
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助