我认为这是不可能的,至少可以肯定地说。虚拟打印机的重点是尽可能地模仿真实打印机,因此您可以识别的任何差异基本上只是虚拟打印机中的错误。
也就是说,您可以根据进行一些猜测PortName。仅举几个例子,PortName包含IP地址或以“ USB”开头的可能是指物理连接。
我知道这是一个古老的问题,但是此答案可能对有相同问题的人有所帮助。
如果我对“虚拟打印机”的理解是正确的。您可以检查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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |