品牌的鼠标或键盘与Visual c++
Brand of mouse or keyboard with Visual C++
是否有办法检测连接电脑的鼠标的品牌,或者连接电脑的键盘的品牌?我听说鼠标或键盘没有序列号,但我可能听错了。
我的主要目标是找出鼠标和/或键盘这台计算机的一台换了另一台。我正在使用visual c++。在visualc++程序中有什么方法可以检测吗电脑上常用的鼠标或键盘被另一个代替了?
我用的是Visual c++ 6.0
你很有可能做到。
通过WMI列举Win32_Keyboard
和Win32_PointingDevice
类设备,可以得到鼠标和键盘的相关信息。
我会忽略(例如)鼠标的"制造商"字段,它反映了驱动程序而不是硬件(例如,在我现在使用的机器上,它说"微软",但鼠标实际上是罗技)。
通过查看PnP设备ID,您可能有更好的机会获得准确的信息。这可能不是100%万无一失(见下文),但在这台机器上,PnP设备ID的供应商ID部分包含"046D",它准确地映射到罗技。
至于这不是万无一失,我可以看到几个可能性。一种是收购,一家公司收购另一家公司,在不改变供应商ID的情况下,以新标签出售现有的硬件库存。在这种情况下,您可能能够将品牌X的一个鼠标替换为品牌X销售的另一个(当前)鼠标,但PnP设备id仍然会显示它们来自不同的供应商。
在另一个方向上,我可以想象鼠标供应商提供的鼠标的供应商ID设置为USB接口芯片的制造商,而不是获得他们自己的供应商ID的可能性。在这种情况下,您可能有两个鼠标,它们在外部具有不同的品牌标签,但在内部具有相同的供应商ID。供应商也可以制造两个品牌相同但接口芯片不同的鼠标,所以你可能会得到一个假阳性,显示不同的品牌,即使包装上显示它们是相同的品牌。
哦,还有一种可能性:至少一些供应商有多个供应商ID。例如,惠普(Hewlett Packard)至少有两个以自己的名义(还有一个以康柏(Compaq)的名义,至少在一定程度上证明了上述第一种情况)。
老实说,我不知道这些在实践中出现的可能性有多大。据我猜测,它们可能特别可能出现在极端情况下——非常低端或非常高端的硬件。主流硬件可能会更加稳定。
无论如何,我认为这可能是你通过软件所能做的最好的事情了。
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- 如何在MS Visual Studio 2019中运行QT UI
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio Code - C++ Debugger 無法啟動
- Visual C++ constexpr Hints
- 为什么它不适用于Visual 2019的原因
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio Code "undefined reference to `WinMain@16'"
- visual在c++中将十进制数转换为二进制数
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Visual Studio中的函数声明和函数定义问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- Visual C++(VS2017)中用户定义的转换不明确
- Visual C++GC接口如何启用它以及要包含哪个库
- visual是否可以在c++中创建一个接收无限数量相同类型(或至少相当数量)参数的函数
- visual c++,如何获取解决方案目录中的代码
- Visual Studio mkl_link_tool.exe链接错误
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头