Я пытаюсь изменить IP-адрес локальной машины, используя ManagementObject класс (.net 3.5) в приложении wpf.
Я использовал следующий проверенный и протестированный код, доступный на всех форумах.
Он успешно меняет IP-адрес в приложении winform, но не работает в настольном приложении WPF.
Есть ли какие-либо ограничения в WPF или каким-либо другим способом?
internal static void SetNetworkAdaptorIP(string IpAddress, string subnetMask, string gateway)
{
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
if (!(bool)objMO["IPEnabled"])
continue;
try
{
ManagementBaseObject objNewIP = null;
ManagementBaseObject objSetIP = null;
ManagementBaseObject objNewGate = null;
objNewIP = objMO.GetMethodParameters("EnableStatic");
objNewGate = objMO.GetMethodParameters("SetGateways");
//Set DefaultGateway
objNewGate["DefaultIPGateway"] = new string[] { this.txtGateway.Text };
objNewGate["GatewayCostMetric"] = new int[] { 1 };
//Set IPAddress and Subnet Mask
objNewIP["IPAddress"] = new string[] { this.txtIP.Text };
objNewIP["SubnetMask"] = new string[] { this.txtSubnet.Text };
objSetIP = objMO.InvokeMethod("EnableStatic", objNewIP, null);
objSetIP = objMO.InvokeMethod("SetGateways", objNewGate, null);
MessageBox.Show("Updated IPAddress, SubnetMask and Default Gateway!");
return;
}
catch (Exception ex)
{
MessageBox.Show("Unable to Set IP : " + ex.Message);
}
}
}