Tag: wmi query

检索excel.ActivePrinter的端口名称

嗨打印方法在Excel上工作我需要像这样的printername和端口名称:“打印机上NE3”只是一个例子。 问题是,我使用虚拟打印机和端口是不同的,几乎每次我需要使用它。 该程序需要在后台运行,所以打开的对话框select不是一个选项。 我也尝试从WMI中检索端口名称: protected string FindPrinterWithPort(string printerName) { StringBuilder query = new StringBuilder(); query.Append("SELECT * FROM Win32_Printer "); query.Append("WHERE DeviceID = \""+printerName+"\""); ObjectQuery objectQuery = new ObjectQuery(query.ToString()); var searcher = new ManagementObjectSearcher(objectQuery); foreach (ManagementObject mo in searcher.Get()) { return printerName +" On "+ mo["PortName"]; } return string.Empty; } 我收到的端口名为我提供了虚拟打印机程序的完整path。 我以前使用下面的方法来改变打印机的excel,而且我总是知道它们应该最终被改变,代码既不快也不好,但它工作了一段时间,直到我做了multithreading,它只是一个大封锁。 因为我需要locking这些方法不要更改Windows中的默认打印机。 private bool SetPrinterForExcel(string […]