如何使用c#更改打印机的端口名称

3
我在SO上搜索了一下,没有看到这个问题的发布,如果我错过了,这是重复的请见谅。
我可以在PrinterSettings.InstalledPrinters中找到网络打印机,并从printer.Properties获取“PortName”属性,但仅设置属性无效。我试图强制更改该打印机端口名称的注册表,但也不起作用(虽然我真的不认为它会,但必须尝试)。
我已经通过reg文件加载实现了新端口,因此不需要构建端口。(顺便说一句,我知道该端口可行,因为在打印机属性中设置它很好用)。
感谢您的帮助。
谢谢。
1个回答

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

希望这可以帮助您。

1
我会假设这个可以工作,所以感谢你 - 我非常感激这个。ManagementScope. 有趣。我需要更多地研究它。 - ddm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接