C# 如何更换打印机';使用c的s端口名#

C# 如何更换打印机';使用c的s端口名#,c#,wmi,printers,network-printers,C#,Wmi,Printers,Network Printers,我已经扫描了这么多,没有看到这个问题张贴,对不起,如果我错过了它,这是一个重复 我可以在PrinterSettings.InstalledPrinters中找到网络打印机,并从printer.Properties中获取“PortName”属性,但仅设置该属性不起作用。我试图在注册表中强行更改打印机端口名,但也没有成功(尽管我真的认为不会,但必须尝试) 我通过reg文件加载实现了新端口,因此不需要构建端口。(顺便说一句,我知道该端口可以工作,因为在打印机属性中设置它可以正常工作) 谢谢你的帮助 谢

我已经扫描了这么多,没有看到这个问题张贴,对不起,如果我错过了它,这是一个重复

我可以在PrinterSettings.InstalledPrinters中找到网络打印机,并从printer.Properties中获取“PortName”属性,但仅设置该属性不起作用。我试图在注册表中强行更改打印机端口名,但也没有成功(尽管我真的认为不会,但必须尝试)

我通过reg文件加载实现了新端口,因此不需要构建端口。(顺便说一句,我知道该端口可以工作,因为在打印机属性中设置它可以正常工作)

谢谢你的帮助


谢谢

您可以使用WMI设置打印机的端口名。 以下是一个例子:

ManagementScope scope = new ManagementScope(@"\root\cimv2");
scope.Connect();

// Insert your printer name in the WHERE clause...
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer WHERE Name='PrinterName");


foreach (ManagementObject printer in searcher.Get())
{
  printer["PortName"]="LPT1:";
  printer.Put();  // Important: Call put to save the settings.
}

希望,这会有帮助。

我想这是可行的,谢谢你,伙计-我真的很感激。管理范围。有趣。我需要更多的研究。