c#可以通过 Windows API 的 AddPrinterConnection 函数来直接添加打印机连接:
using System;
using System.Runtime.InteropServices;
public class PrinterManager
{
[DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool AddPrinterConnection(string pName);
public void AddWSDPrinter(string printerAddress)
{
bool success = AddPrinterConnection(printerAddress);
if (!success)
{
throw new System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error());
}
}
}
感谢您的回复,但是您提供的接口string query = "SELECT * FROM Win32_Printer WHERE PortName LIKE 'WSD%' OR DeviceID LIKE 'WSD%'";应该只能搜索到本地已安装的WSD设备,不能像设置- 打印机和扫描仪项中搜索到局域网内能搜索到的所有设备,有其他的解决方案吗?