如何以编程方式打开Windows操作系统中的“networking发现”?

我的项目使用UPnP协议打开端口。 Windows在默认情况下禁用UPnP设备发现,需要在networking和共享中心中启用networking发现才能启用UPnP设备发现。

有没有办法做到这一点编程?

您可以使用cmd命令启用网络发现

netsh firewall set service type = upnp mode = mode 

然后将该命令作为参数来编码

 public void ExecuteCommandSync(object command) { try { // create the ProcessStartInfo using "cmd" as the program to be run, // and "/c " as the parameters. // Incidentally, /c tells cmd that we want it to execute the command that follows, // and then exit. System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command); // The following commands are needed to redirect the standard output. // This means that it will be redirected to the Process.StandardOutput StreamReader. procStartInfo.RedirectStandardOutput = true; procStartInfo.UseShellExecute = false; // Do not create the black window. procStartInfo.CreateNoWindow = true; // Now we create a process, assign its ProcessStartInfo and start it System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo = procStartInfo; proc.Start(); // Get the output into a string string result = proc.StandardOutput.ReadToEnd(); // Display the command output. Console.WriteLine(result); } catch (Exception objException) { // Log the exception } } 

如果该命令不起作用,则根据您的系统查找另一个命令来启用网络发现。