2015-02-08 68 views
0

我有應用程序需要打印3臺打印機
我保存的打印機名稱在一個txt文件 的問題是當用戶斷開連接並重新連接打印機(USB打印機) 需要重新命名或花葯名字和印刷混在一起。德爾福多打印機

如果名稱更改,我如何選擇打印機?

+0

難道你不讓用戶告訴你要使用哪臺打印機 – 2015-02-08 10:00:28

+0

即使用戶不知道打印機的名稱 – 2015-02-08 10:42:37

+0

打印機不應該得到一個新的名稱。 USB端口可能會重新分配給新的端口,但是如果您使用打印機的名稱進行打印,則不應該擔心。您的實際代碼如何查找要打印的打印機的選擇以及您所做的實際打印? – HeartWare 2015-02-08 10:48:23

回答

1

我有與USB相機相同的問題。只要設備移動到另一個USB端口,它們也傾向於在帶有附加數字的窗口(例如:Epson Blah Blah#1)下爲設備創建另一個實例/條目。

答案最可能在於設備描述符。更具體地說是設備的HardwareID。

要快速查看設備的HardwareID,請轉到控制面板>設備管理器(如果Win7或更高版本),然後右鍵單擊設備,無論它是USB閃存還是USB攝像頭。點擊屬性並轉到「詳細信息」選項卡。將「屬性」值更改爲「硬件ID」。您將看到HardwareIDs

你可以找到這裏的更多信息: https://msdn.microsoft.com/en-us/library/windows/hardware/ff539283%28v=vs.85%29.aspx

和:

https://msdn.microsoft.com/en-us/library/windows/hardware/jj649944%28v=vs.85%29.aspx

有關注冊表項,後者的談判,你也可以找到的信息一個裝置。關鍵是:

HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \控制\ DeviceClasses \ HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \枚舉\ USB \\\設備參數 HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \枚舉\ USB

所以,如果您可以將HardwareIDs鏈接到打印機,然後您可以枚舉已安裝的打印機進行比較,然後選擇您想要的打印機。因此,您最初將安裝打印機,並讓您的應用程序選擇該打印機並保存其HardwareID。然後,每次在PC上更換設備時,您都可以獲得與最初安裝的打印機相關的設備。

我沒有測試過,因爲我目前沒有兩個完全相同的設備,以確保它們沒有相同的硬件ID。