【发布时间】:2018-11-18 23:41:12
【问题描述】:
为这个混乱道歉,我几天前就开始了,我还在努力学习。 我的代码:
private void button1_Click(object sender, EventArgs e)
{
ManagementScope oMs = new ManagementScope();
ObjectQuery oQuery =
new ObjectQuery("Select * From Win32_NetworkAdapter");
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();
foreach (ManagementObject oReturn in oReturnCollection)
{
if (oReturn.Properties["NetConnectionID"].Value != null)
{
// I want the result from this pasted into the "Network Adapter" prompt
Console.WriteLine(oReturn.Properties["NetConnectionID"].Value);
// This is probably 100% wrong, sorry.
String NetworkAdapter = Console.WriteLine(oReturn.Properties["NetConnectionID"].Value);
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.Start();
// I want to insert the Name of a network adapter into this command prompt, but I can't seem to manage it.
process.StandardInput.WriteLine("netsh interface ipv4 set dns "NetworkAdapter" static 8.8.8.8");
process.StandardInput.WriteLine("netsh interface ipv4 add dns "NetworkAdapter" 8.8.4.4 index=2");
process.StandardInput.Flush();
process.StandardInput.Close();
process.WaitForExit();
Console.WriteLine(process.StandardOutput.ReadToEnd());
Console.Read();
}
}
}
这个想法是,当我按下按钮时,它会检测我的活动网络适配器名称并通过 cmd.exe 提示将其粘贴到标准 dns 更改中。我开始认为我让自己变得更难了。
感谢您的帮助。
【问题讨论】:
-
要保存适配器,您所要做的就是:string adapter = oReturn.Properties["NetConnectionID"].Value;然后将其添加到 cmd 中的字符串
-
@kaj 我试过 String NetworkAdapter = oReturn.Properties["NetConnectionID"].Value;连同 process.StandardInput.WriteLine(@"netsh interface ipv4 set dns "+NetworkAdapter+" static 8.8.8.8"); process.StandardInput.WriteLine(@"netsh interface ipv4 add dns "+NetworkAdapter+" 8.8.4.4 index=2");但我得到以下信息:无法将类型“对象”隐式转换为“字符串”。存在显式转换(您是否缺少演员表?
-
这就是您获取字符串并将其作为参数传递的方式。你的问题是什么?
-
我似乎无法让它工作。控制台显示它只尝试运行“netsh interface ipv4 set dns”并在那里切断。所以我想我的问题是我做错了什么?
-
看看下面的答案