我知道这是一个老问题,但这个答案可能对有同样问题的人有所帮助 .
如果我对“虚拟打印机”的理解是正确的 . 您可以检查WMI属性“PrintProcessor”并忽略“winprint” . 据我所知,这将忽略所有基于Windows 7软件的打印机选项 . 这是一些示例代码来演示 . 返回打印机名称 .
using System.Management;
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Printer");
foreach (ManagementObject obj in searcher.Get())
{
if(obj != null)
{
if(obj["PrintProcessor"].ToString().ToUpper() != "WINPRINT")
{
Console.WriteLine(obj["Name"]);
}
}
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}