2015-02-08 69 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。