【发布时间】:2016-06-15 18:38:44
【问题描述】:
=>控制面板\所有控制面板项\设备和打印机中有一台本地打印机。我通过单击“删除设备”手动删除了它。并且打印机确实被移除了,不再出现。
问题是,我们有下面的 .net 代码来检查是否安装了打印机。它返回真。如果我们按名称执行“SELECT * FROM Win32_Printer”,打印机似乎仍然存在。
问题:
1) 谁能给我更多的细节,为什么本地打印机记录仍然存在?
2) 我可以信任下面的代码,还是需要更多条件来检查打印机安装?
ManagementScope oManagementScope = new ManagementScope(ManagementPath.DefaultPath);
oManagementScope.Connect();
SelectQuery oSelectQuery = new SelectQuery();
oSelectQuery.QueryString = @"SELECT * FROM Win32_Printer WHERE Name = '" + sPrinterName.Replace("\\", "\\\\") + "'";
using(ManagementObjectSearcher oObjectSearcher = new ManagementObjectSearcher(oManagementScope, oSelectQuery))
{
using(ManagementObjectCollection oObjectCollection = oObjectSearcher.Get())
{
return oObjectCollection.Count > 0;
}
}
【问题讨论】: