簡體   English   中英

如何在C#中獲得唯一/不同的打印機型號名稱?

[英]How to get Unique/Distinct Printer Model Name in C#?

我正在嘗試做的是:

我正在創建計算機上安裝的所有打印機的數據庫。

使用PrinterSetting.PrinterNamePrinterSettings.InstalledPrinters我正在獲取PrinterName

我也嘗試過winapi Win32_Printer但這和我上面的代碼有問題。

問題

問題是,可以使用不同的名稱來安裝單個打印機,例如HP LasetJet 1020,HP LasetJet 1020(副本1),HP LasetJet 1020(副本2)等等。 打印機名稱是用戶定義的,可以是任何名稱。 甚至可能一台打印機可以安裝2個這樣的不同名稱,因此它們的名稱之間沒有相似之處。

這就是為什么我認為即使一台打印機以不同的名稱安裝,打印機型號名稱也應該是唯一的。

題:

如何提取該打印機模式名稱? 或Win_32中的任何其他屬性,該屬性是唯一的,用戶無法編輯且可用於標識打印機。

要么

注冊表可能對此有所幫助。 如果此模型信息在注冊表中(很可能會在其中),在哪里可以找到它?

打印機驅動程序名稱和端口名稱的組合構成了特定打印機的唯一唯一標識符。 如果驅動程序和端口名稱在兩台打印機之間匹配,則這些打印機都代表相同的物理(或虛擬)硬件。 沒有其他屬性可以可靠地識別它們。

我會用WMI解決這個問題,看來可能會有更多的信息。

在CodeProject上有一個不錯的演練,但是我不能說我已經專門處理了,只是以為我會指出您的方向。

http://www.codeproject.com/Articles/80680/Managing-Printers-Programatically-using-C-and-WMI

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM