如何使用c#更改打印机的PortName

时间:2011-08-29 16:53:10

标签: c# wmi printers network-printers

我已经扫描过了,并没有看到这个问题发布,对不起,如果我错过了,这是一个重复。

我可以在PrinterSettings.InstalledPrinters中找到网络打印机,并从printer.Properties中获取“PortName”属性,但只是设置该属性不起作用。我试图在注册表中强制更改该打印机端口名称,但这也没有用(虽然我真的不认为它会但是不得不尝试)。

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

您的帮助表示赞赏。

由于

1 个答案:

答案 0 :(得分:3)

您可以使用WMI为您的打印机设置PortName。 这是一个例子:

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.
}

希望,这有帮助。