通常,在舊版Windows(98或更舊版本)中,我可以使用Printer api中的MarkingTechnology來獲取當前類型的打印機。但它在Windows 2000或更高版本中不可用。你有沒有其他方法可以在Windows 2000或更高版本中檢測它?查詢打印機信息通過WMI查詢在C#如何檢測點陣打印機的類型?
示例代碼
var queryResult = string.Empty;
var query = new WqlObjectQuery("Select * from Win32_Printer");
var searcher = new ManagementObjectSearcher(query);
foreach (ManagementObject printer in searcher.Get())
{
foreach (var p in printer.Properties)
{
queryResult += p.Name + ": " + printer[p.Name] + Environment.NewLine;
}
queryResult += "--------------------------------" + Environment.NewLine;
}
Win32_Printer class documentation
感謝,
我認爲我們可以通過水平分辨率是我的測試針式打印機是120 DPI,而不是至少300 DPI的普通打印機檢測到它。 – 2012-03-19 06:38:21
然而,它仍然有一些分辨率高於300DPI的打印機。 http://www.equanet.co.uk/catalogue/item/Y871451 – 2012-03-19 06:45:33
是否有激光在那裏的分辨率爲360dpi?我的經驗是,激光使用300dpi或其倍數。問題是低範圍inkjets(可能是360dpi/b&W)和一些奇怪的球,如我的標籤打印機:http://www.brother-usa.com/PTouch/ModelDetail.aspx?ProductID=PT1500PC這是180dpi/b&w (但是可以通過檢查可用的紙張來區分)。 – 2012-03-27 04:29:08