模拟按键的逻辑是否有变化

使用问题 · 1692 次浏览
fantasynew 创建于 2022-05-04 22:11
我的鼠标有侧向滚轮,设置了ctrl+侧向滚轮来发送虚拟桌面快捷键。以前按住ctrl不动,滚轮左右滚动桌面可以来回切换。不知道什么时候开始不行了,切换到下个桌面没法再切换回来,需要放开ctrl重新触发一次动作。有时候切换桌面仅仅是为了看一眼另一个窗口的内容,马上就切回去的

回复内容
CL 2022-05-04 22:19
#1

可能是有问题,刚测试了一下开始可以后来又不行了。我研究下看看。

好像在chrome上会失效,在其它软件上正常。

可以考虑在任务栏滚轮切换。


====

我这里测试没问题,检查是否有其他规则设置(如模拟的按键又触发了其它操作)或者其它软件(如AHK脚本)有影响到。


CL 最后更新于 2022-05-04 22:25
fantasynew 回复 CL 2022-05-04 22:31 :

这段时间没有做设置上的更改,也没有引入新的AHK脚本。可能模拟动作产生的ctrl keyup被quicker自身捕捉了

fantasynew 回复 CL 2022-05-04 22:32 :

我特意换了几个软件测试,都有问题,不是chrome的锅

CL 回复 fantasynew 2022-05-04 22:33 :

是和上图类似的设置么?

fantasynew 回复 CL 2022-05-04 22:38 :


CL 回复 fantasynew 2022-05-04 22:41 :

好的我研究下。

fantasynew 回复 CL 2022-05-04 22:41 :

第一个Ctrl+右键的很久没用了,但是印象中是可以切换虚拟桌面不触发右键动作的,现在光触发右键不干活了

CL 回复 fantasynew 2022-05-04 22:49 :

我的刚测试了一下,卸载logi options就正常了,有这个,在chrome里会无法触发水平滚动事件。

你是哪个牌子的鼠标? 如果也是罗技的可以试一下这个方法。 另外在设置里可以添加触发提示,确认一下是没有触发还是触发后没有实现功能。


fantasynew 回复 CL 2022-05-04 22:54 :

我没装鼠标自带驱动,用的系统默认驱动。两个虚拟桌面都切换到资源管理器界面测试,问题依旧

fantasynew 回复 CL 2022-05-04 23:00 :

右键的没有触发,滚轮的只能触发一个

CL 回复 fantasynew 2022-05-05 07:28 :

今天换了个电脑测试也没问题。 方便的话可以先退出其他软件或脚本排除一下可能的干扰。另外一个方法就是退回到比较早的版本看看能不能正常。

CL 最后更新于 2022-05-05 09:27
fantasynew 回复 CL 2022-05-05 21:45 :

首先把近期安装的fences 4和listary 5都卸载了,禁用AHK,问题还在。

下载了旧版quicker,1.30.7,问题消失。

问题应该是出在quicker这边了,某次更新在不起眼的地方逻辑发生了改变。

fantasynew 回复 CL 2022-05-05 21:49 :

缩小范围到1.32.3没问题,1.32.8有问题

fantasynew 回复 CL 2022-05-05 21:56 :

装了十几个历史版本,最终确定该问题自1.32.5引入,之后每个版本都存在

CL 回复 fantasynew 2022-05-05 22:01 :

查了下代码,有一个地方修改可能这个这个地方有关。在模拟快捷键的时候,如果是Ctrl键,会模拟成LeftCtrl,这个可能造成Ctrl变成抬起状态。不过windows在长按按键的时候应该会自动重复,所以抬起后会被再次变成按下状态。如果有某个原因造成了ctrl没有自动重复,可能造成类似现象。

可以打开键盘状态窗口,看下操作的时候Ctrl键的状态是不是一直是按下的,在这个列表里。



CL 最后更新于 2022-05-05 22:02
fantasynew 回复 CL 2022-05-05 22:08 :

不是的只要触发动作ctrl就没了,我的理解从键盘上获取的真实输入状态ctrl是没有放开的,quicker这里的判断逻辑不对了。windows长按的时候应该不是重复发送按键的

fantasynew 回复 CL 2022-05-05 22:10 :

但是比较奇怪的一点,为何在你的电脑上是正常的呢?昨晚你的电脑测试也有问题,难道这个还看人品?

CL 回复 fantasynew 2022-05-05 22:15 :

不知道是不是和键盘有关系,我这里会重复。windows是有重复功能,可以参考 https://www.xstui.com/read/870 

键盘状态应该可以修改一下识别方法,我试试。

fantasynew 回复 CL 2022-05-05 22:26 :

这个重复指的是输入文本时候的重复,是系统行为,键盘物理上并没有重复。quicker检测的不是键盘物理状态而是获取windows给的信息吗

CL 回复 fantasynew 2022-05-05 22:37 :

似乎没有API可以准确读取键盘的物理状态。 目前使用的GetAsyncKeyState方法,在模拟了按键消息之后也会变成抬起状态。 可以参考这里 https://stackoverflow.com/questions/8206927/physical-key-state  。所以如果系统没有自动重复ctrl的按下消息,就会有目前的结果,Ctrl被抬起,高级鼠标触发失效。 有一个方法是使用扩展热键里的自定义引导键,可以避开冲突。另外使用Ctrl/Alt/Shift作为引导键可能还会产生一个意外组合的问题,比如模拟了V,得到的结果就是Ctrl+V。

fantasynew 回复 CL 2022-05-05 23:12 :

扩展热键里不能设置鼠标滚轮。还有quicker 1.32.5之前是怎么实现的自动重复ctrl

fantasynew 回复 CL 2022-05-05 23:17 :

GetAsyncKeyState也是跟着消息队列来,一个key up就改状态了

CL 回复 fantasynew 2022-05-06 07:33 :

之前是直接模拟的ControlKey = 17这个键值。不过这个在有些软件里有兼容性问题,会识别不到,所以在这一版改成了LControlKey 这个值。 参考 Keys枚举

扩展热键里添加引导键以后,在高级鼠标触发里可以使用这些引导键。

CL 最后更新于 2022-05-06 07:38
fantasynew 回复 CL 2022-05-06 10:09 :

但是这个动作只有Ctrl最顺手,其他按键总有莫名其妙的问题,要不距离不合适。Ctrl键的模拟方式可以加个选项吗?

CL 回复 fantasynew 2022-05-06 10:28 :

我等再考虑下。 不过为啥你的电脑ctrl不会自动重复呢,windows里有做什么设置么,或者键盘比较特殊?

fantasynew 回复 CL 2022-05-06 11:58 :
yoga 14c自带键盘,没改过键盘设置
fantasynew 回复 CL 2022-05-06 11:59 :

装旧版问题消失,可以排除设置和其他软件的问题

fantasynew 回复 CL 2022-05-07 12:51 :

发现RCTRL没有问题,平时用LCTRL比RCTRL多多了,能不能把模拟的LCTRL换成RCTRL

CL 回复 fantasynew 2022-05-07 13:44 :

有点两难,有的软件特别是一些国产软件(如WPS系列),不是用的windows标准快捷键机制,导致模拟CTRL/RCTRL的时候触发不到。后面看看要不要加个选项。

fantasynew 回复 CL 2022-05-07 19:40 :

那是必须要加上啊,LCTRL这么好的位置可以定义好多触发

fantasynew 回复 CL 2022-05-11 15:32 :

暂时写了个复杂的动作来实现了,希望早日加上选项

CL 回复 fantasynew 2022-05-11 17:25 :
直接改成模拟RCtrl了,下一版更,等看看会不会出现其他问题再说😂。
fantasynew 回复 CL 2022-05-11 21:08 :

感谢作者大大

CL 回复 fantasynew 2022-05-11 21:51 :

已发版,试下看看。 https://getquicker.net/Help/Versions 

fantasynew 回复 CL 2022-05-12 08:57 :

感谢,已完美

回复主贴