[quote=引用 12 楼 Chen8013 的回复:] 既然都能“识别是哪个设备动作”了,过滤“动作”还不容易? 还有,这个获取到的数据中,鼠标的动作只有按键按下、放开的信息啊, 你所谓的“移动事件”在这儿不存在吧? 如果你想要的效果是“旋钮鼠标的移动不要引起屏幕鼠标指针的移动”, 我感觉应该是: 在这个Hook处理过程中,识别到是旋钮鼠标的x/y变化时,直接返回,不要去调用CallWindowProc( ); (一般是返回值0或1,你自己试。 当然也不排除任何值都可的情况。) 如果识别到是“正常鼠标”,那么就要调用CallWindowProc( )进行后续处理。
话说,某大公司上了一条香皂装盒流水线,很快就发现一个问题,就是该流水线不能确保每个盒子都装进香皂,总有少量的空盒当成品装箱,总不能把空盒子卖给客户吧,于是公司聘请了一批砖家、叫兽、海龟搞了个科研小组,用时间一年,花费了数百万银子,这些砖家、叫兽、海龟不辱使命,运用红外探测等等方法研发出一套自动设备,当流水线上上有空盒子时设备会自动探测到,然后机械手伸出拿出空盒,公司对此相当满意。 而在南方某城市一小民营企业也上了这条流水线,老板也发现这个问题了,于是把负责产品包装的一个农民工叫过来:“他吗的,这么多空盒装箱,你是猪呀,今天下午把这个问题给我解决掉,否则你给我滚蛋!” 午饭过后,农民工告诉老板,问题已解决。老板问怎样解决的,农民工说我用150元买了台大风扇放在流水线旁,有空盒过来吹掉就是了。
[quote=引用 14 楼 Chen8013 的回复:] GetRawInputData( ) 获取到的数据中,有设备句柄(用来区分相应设备), 对于鼠标的数据,有具体的哪个按键 按下/放开 的信息。 你需要的信息,不是都已经齐备了吗,那还会有什么问题………… (我看难点可能是:在程序启动时,把设备句柄与“硬件”正确对应了)
GetRawInputData( ) 获取到的数据中,有设备句柄(用来区分相应设备), 对于鼠标的数据,有具体的哪个按键 按下/放开 的信息。 你需要的信息,不是都已经齐备了吗,那还会有什么问题………… (我看难点可能是:在程序启动时,把设备句柄与“硬件”正确对应了)
既然都能“识别是哪个设备动作”了,过滤“动作”还不容易? 还有,这个获取到的数据中,鼠标的动作只有按键按下、放开的信息啊, 你所谓的“移动事件”在这儿不存在吧? 如果你想要的效果是“旋钮鼠标的移动不要引起屏幕鼠标指针的移动”, 我感觉应该是: 在这个Hook处理过程中,识别到是旋钮鼠标的x/y变化时,直接返回,不要去调用CallWindowProc( ); (一般是返回值0或1,你自己试。 当然也不排除任何值都可的情况。) 如果识别到是“正常鼠标”,那么就要调用CallWindowProc( )进行后续处理。
刚看了看我新买的那个罗技鼠标。可以调节指针移动快慢(不会改变系统设置里的鼠标设置参数)。如果能获取这个DPI参数就可以实现区分了。 我用两个鼠标测试,可以明显发现速度有差异。不过如果不移动就没法体现了。 楼主可以研究看看,是否可以有滚轮差异设置的鼠标。 参考:https://item.jd.com/1103407.html
[quote=引用 6 楼 sysdzw 的回复:] 这个问题跟我之前问过一个电脑插多跟扫描枪如何区别他们似得。 之前用了带后缀来区别。这鼠标移动就是个指针没法带入其他信息来实现差异化啊。就是个输入设备。要不楼主考虑一个鼠标切换控制这两个按钮好了。或者搞个遥控器啊,左右切换旋转~
这个问题跟我之前问过一个电脑插多跟扫描枪如何区别他们似得。 之前用了带后缀来区别。这鼠标移动就是个指针没法带入其他信息来实现差异化啊。就是个输入设备。要不楼主考虑一个鼠标切换控制这两个按钮好了。或者搞个遥控器啊,左右切换旋转~
很正经地在回答你的问题啊。 先论证可行性再设计方案,而不是先有方案再强求可行性啊。 程序事件级,是不分哪个外设(鼠标)的。 如果不改外设(比如小键盘),那么就需要驱动级开发了——爱莫能助、自求多福。
1,486
社区成员
23,280
社区内容
加载中
试试用AI创作助手写篇文章吧