如何区分鼠标和触摸操作,并使得触摸不改变鼠标位置?

整了个旧ipad作为电脑的触摸拓展屏,放在键盘前面,点击起来很舒适。
我尝试把快捷操作全部放在这个屏幕上,
但是有个问题,点击这个屏幕后,
鼠标会跑到拓展屏,而不是保持在原有位置。

请问有什么办法区分两种操作呢?触摸点击或拖动后鼠标不改变位置或快速返回原位置。

1 个赞

与话题相关的软件:
把平板电脑变成显示器:Splashtop Wired XDisplay

想天工作台 – 划时代的副屏效率工具 (apps.vip)

我有一个超级复杂的实现思路,调用win压力感受器,从0蹦到100的一定是鼠标,有渐变的是触摸,参考krita,在它的触摸板设置里能完美区分鼠标和触摸,既然能区分,要求的后一条自然就好办了

这也是我在使用触摸扩展屏时的主要问题,希望能有什么解决方案。。

touchmousetools.com
这个工具号称可以解决这一问题,不过我试了下,对于xdisplay模拟的触摸屏并不能生效。
但是可能可以分辨真正的触摸屏和鼠标操作。

另外,收费软件,30天试用。

一个鱼唇的方案:
按下某个快捷键记录鼠标位置
操作ipad
2s后移动鼠标至记录的位置

这个似乎跟软件适配有关。

如果在iPad屏幕上点击原本支持触摸的控件,比如任务栏、开始菜单、Edge浏览器,鼠标就不会移动;如果点击不区分触摸和鼠标的控件,鼠标就会移动到iPad的屏幕

所以……也许可以把快捷键做成一个静态pwa页面?

找到方法了,但是需要自己动手改写一个ahk软件eithermouse。
这个软件功能是类似mousemux,可以同时使用两个鼠标,有两个鼠标箭头。
而触摸时,诱发的永远是当前活动鼠标箭头。
所以只需要进行简单的改写,就可以实现鼠标一个箭头,触摸一个箭头了。互不干扰。

整好了我再单独发个帖子,应该很多人都用得着。

1 个赞

yeah,搞定了!!!!!!!!!

开心开心开心~

稍后发个帖子来。

求分享!!!

之前我以为我那个方案可以实现自动区分,结果实测了一阵发现会有bug。

所以被我弃置了。

现在的方案是左手按住键盘某个按键(或脚踩踏板按键),这时自动切换到鼠标2,右手去点击触摸屏,不影响原本鼠标。松开那个按键,自动切回鼠标1

动画1

之后我发个教程。

题主你是如何实现的呢,我的eithermouse好像无法识别触摸屏

题主你是如何实现的呢,我的eithermouse好像无法识别触摸屏

还得搭配 AutoHotInterception——把你的笔记本键盘/闲置键盘/单手键盘…用起来~,重构部分eithermouse的代码。

因为太麻烦了,并且需要自己根据自己电脑改很多地方以及编译,不适合不会ahk的玩家。所以我后续就没发布。

具体来说,如果有人想要尝试:

首先配置好AutoHotInterception

然后在EitherMouse.ahk开头加上

#include Lib\AutoHotInterception.ahk
AHI := new AutoHotInterception()
id1 := AHI.GetMouseId(0x045E, 0x07A5)
id2 := AHI.GetMouseId(0x062A, 0x4101)

再在第一个return后加上(具体按键、具体鼠标id根据自己需要确定):

f15::
    if (A_PriorHotKey = "f15") ; 如果上一个按键是f15
        return ; 不执行任何操作
    ;AHI.SendMouseButtonEvent(id2, 3, 0)
    AHI.SendMouseMoveRelative(id2, 0, 0)
return

f15 up::
    if (A_TimeSincePriorHotkey > 400) ; 如果上一个按键是f15
        return ; 不执行任何操作
    ;AHI.SendMouseButtonEvent(id1, 3, 0)
    AHI.SendMouseMoveRelative(id1, 0, 0)
return

这样一来,当按下/按住 f15时,当前鼠标会切换为 附鼠标,触摸操作引起的鼠标移动不影响主鼠标位置,当f15抬起,当前鼠标又会切换回主鼠标。

其实还有一种思路: 不去识别到底是否是触摸还是鼠标操作, 而是维护一个定时器, 循环检测并记录鼠标此时此刻的位置, 如果检测到鼠标出现在主屏幕以外的其他显示器上, 则将鼠标移动回上一次记录的位置