品牌的鼠标或键盘与Visual c++

Brand of mouse or keyboard with Visual C++

本文关键字:Visual c++ 键盘 鼠标 品牌      更新时间:2023-10-16

是否有办法检测连接电脑的鼠标的品牌,或者连接电脑的键盘的品牌?我听说鼠标或键盘没有序列号,但我可能听错了。

我的主要目标是找出鼠标和/或键盘这台计算机的一台换了另一台。我正在使用visual c++。在visualc++程序中有什么方法可以检测吗电脑上常用的鼠标或键盘被另一个代替了?

我用的是Visual c++ 6.0

你很有可能做到。

通过WMI列举Win32_KeyboardWin32_PointingDevice类设备,可以得到鼠标和键盘的相关信息。

我会忽略(例如)鼠标的"制造商"字段,它反映了驱动程序而不是硬件(例如,在我现在使用的机器上,它说"微软",但鼠标实际上是罗技)。

通过查看PnP设备ID,您可能有更好的机会获得准确的信息。这可能不是100%万无一失(见下文),但在这台机器上,PnP设备ID的供应商ID部分包含"046D",它准确地映射到罗技。

至于这不是万无一失,我可以看到几个可能性。一种是收购,一家公司收购另一家公司,在不改变供应商ID的情况下,以新标签出售现有的硬件库存。在这种情况下,您可能能够将品牌X的一个鼠标替换为品牌X销售的另一个(当前)鼠标,但PnP设备id仍然会显示它们来自不同的供应商。

在另一个方向上,我可以想象鼠标供应商提供的鼠标的供应商ID设置为USB接口芯片的制造商,而不是获得他们自己的供应商ID的可能性。在这种情况下,您可能有两个鼠标,它们在外部具有不同的品牌标签,但在内部具有相同的供应商ID。供应商也可以制造两个品牌相同但接口芯片不同的鼠标,所以你可能会得到一个假阳性,显示不同的品牌,即使包装上显示它们是相同的品牌。

哦,还有一种可能性:至少一些供应商有多个供应商ID。例如,惠普(Hewlett Packard)至少有两个以自己的名义(还有一个以康柏(Compaq)的名义,至少在一定程度上证明了上述第一种情况)。

老实说,我不知道这些在实践中出现的可能性有多大。据我猜测,它们可能特别可能出现在极端情况下——非常低端或非常高端的硬件。主流硬件可能会更加稳定。

无论如何,我认为这可能是你通过软件所能做的最好的事情了。