thankdad 发表于 2024-5-6 23:29

【原创】 TP Gesture —— 指点杆手势 1.0.1 Updated

本帖最后由 thankdad 于 2024-5-10 20:20 编辑

不得不说,巨硬的触摸板手势真的是越来越好了,这次本码农就逆时代写个trackpoint可用的手势软件吧,望大家轻点踩。

本软件的原理是用中键双击触发手势,双击中键后指点杆方向可以定义8个动作,再加上三连击中键,合计9个手势动作。

先在设定里把trackpoint中键设置为中键按下。



压缩包里一共有3个文件。

其中,config.ini是配置文件,红黑配色的是主程序,红蓝配色的是AHK生成的辅助程序。更新版本时只覆盖两个exe,config.ini不用覆盖。

点那个红黑的运行,会显示系统托盘(最左边那个):

右击弹出菜单,选config,弹出主界面,先选择手势:

一共9个手势,分别是:三击中键,双击中键后左/左上/上/右上/右/右下/下/左下移动。

接着选择动作类型,disabled是禁用,一共有3个动作选择,分别是组合键,运行命令行和设置CPU最大频率。

最后填入动作参数,SAVE后完成该手势设置。这样,3连击中键就等于按下CTRL+ALT+TAB了。同理可以继续设置其他手势,每次设置成功后需要SAVE,不想保存就选别个手势,刚才的修改不会被保存。

使用时,双击中键会激活主程序,系统托盘图标会闪烁约1秒:

此时正在接收手势,手势接收后就会执行设定动作。

【兼容性】
支持WIN7~WIN11,vista理论也能用。因为是通过中键触发,所以trackpoint需要设置为中键模式,同时手势也对鼠标/触摸板生效,或许没人那么用就是了,因为这两者都有更强大的手势。

限制CPU最大频率对部分A社处理器和i社的Ultra不生效,效果跟https://www.ibmnb.com/thread-2044071-1-1.html一样的,如果那个软件不能用那也不用试这功能了,这两软件可兼容,但CPU Manual Gear不会显示TP Gesture做的频率限制。

【问答】
Q:使用许可?
A:其实我的软件About里都写清楚了:


Q:trackpoint必须要设置为中键模式吗?
A:因为ELAN的trackpoint驱动没给API,所以我使用双击中键做触发。如果你还想经典的中键滚动+手势,可以用tpmiddle+滚动设置,或X-Mouse Button Control+中键设置。

【Credits】
AutoHotKey:开源万岁。
和一位不愿透露身份的坛友做的测试。


thankdad 发表于 2024-5-6 23:30

本帖最后由 thankdad 于 2024-5-7 21:24 编辑

这里说一下trackpoint的设置和扩展。


随着WIN和应用对UI的优化,触摸板体验都有了相当的提升,触摸板三指四指官方支持的非常舒服,毕竟触摸板大啊,双指三指四指放下都没问题。而小红点,物理所限,它的上限就这样,怎么都玩不出花来。

而鼠标中键也在系统和应用里有了多种应用,说实话还真有点好用。那怎么让trackpoint的滚动和中键同时存在呢?两个方案选一:

1. 用X-mouse button control(XMBC)
先在设置里trackpoint中键设置到单击中键。然后在XMBC设置页里把middle button设置到change movement to scroll,并在弹出窗口(或点右边的齿轮)里把default action(no movement)设置到middle click,最后保存即可。
优点是适合所有机型,缺点是,因为是下钩子的,占用更多后台资源的同时还可能会被一些网游检测为外挂。

2. 用tpmiddle,https://sdx1.net/tools/tpmiddle
先在设置里trackpoint中键设置到滚动,然后运行tpmiddle即可,可以加入启动项。
优点是占用资源小,缺点是只适合上古老机。因为tpmiddle是synaptics专用的,新机都是elan的trackpoint,而elan没有给SDK,所以做不出tpmiddle了。不过elan的小红点个人用得更顺手,不像synaptics的万年漂移改不掉。

trackpoint在功能上的毫无进步已经很多年了,无论是物理上还是软件上,都确实玩不过触摸板,年轻一代的用户甚至希望为了增加几mm触摸板的高度而去掉trackpoint三键。当然,未来是年轻人的,其实trackpoint结局已经注定,不确定的只有时间。

ssc505684708 发表于 2024-5-7 00:11

win10 LTSC,synaptics驱动,中键功能为鼠标中键,x-mouse托管滚动
功能如下设置
只能在TP gesture保持前端的状态有反应,连点中键三次可以触发ctrl+alt+tab菜单
点save后界面关闭,托盘无“只因篮球”图标,三键手势失效



此时这两个进程是消失的状态,应该是闪退了?


重启TP gesture.exe发现设置可以保存,显示状态与图一一致,并且只要界面在前端就可以触发手势,关闭后再次失效


不太确定是跟哪个应用冲突,明天再研究研究





thankdad 发表于 2024-5-7 00:15

本帖最后由 thankdad 于 2024-5-7 00:19 编辑

ssc505684708 发表于 2024-5-7 00:11
win10 LTSC,synaptics驱动,中键功能为鼠标中键,x-mouse托管滚动
功能如下设置
只能在TP gesture保持前端 ...
把tpgesture.exe那个空格去掉,因为helper要唤醒指定名字的主程序。

这个是主界面,点最小化是到托盘,点exit或X就是关闭程序。

ssc505684708 发表于 2024-5-7 00:18

建议大佬参考一下这个,之前从AHK论坛里面下的,这个响应十分迅速,
TP guesture启动手势时有个光标转圈的过程,响应有个延迟,不知道是不是正常的



thankdad 发表于 2024-5-7 00:21

ssc505684708 发表于 2024-5-7 00:18
建议大佬参考一下这个,之前从AHK论坛里面下的,这个响应十分迅速,
TP guesture启动手势时有个光标转圈的 ...

你是设置的3击动作吗?这个我有注意到,是为了做兼容,可以去掉这个延迟的。

ssc505684708 发表于 2024-5-7 00:24

本帖最后由 ssc505684708 于 2024-5-7 00:26 编辑

thankdad 发表于 2024-5-7 00:15
把tpgesture.exe那个空格去掉,因为helper要唤醒指定名字的主程序。

这个是主界面,点最小化是到托盘,点 ...
我看文件名中间没空格,文件名tpgesture.exe,具体是在哪里去掉空格?


thankdad 发表于 2024-5-7 00:25

本帖最后由 thankdad 于 2024-5-7 00:27 编辑

ssc505684708 发表于 2024-5-7 00:24
我看文件名中间没空格,文件名tpgesture.exe,具体是在哪里去掉空格?
我看到你的文件名是TP Gesture.exe啊,应该叫TPGesture.exe,因为helper是指定TPGesture.exe唤醒的。目录无所谓,只关心文件名。

ssc505684708 发表于 2024-5-7 00:26

thankdad 发表于 2024-5-7 00:21
你是设置的3击动作吗?这个我有注意到,是为了做兼容,可以去掉这个延迟的。 ...

不是,双击中键,不过也需要中键功能设置为鼠标中键

thankdad 发表于 2024-5-7 00:30

ssc505684708 发表于 2024-5-7 00:26
不是,双击中键,不过也需要中键功能设置为鼠标中键

我的操作逻辑是双击激活主程序,进入1秒的检测时段,当然如果你灵敏度设置到高,并且在0.1秒做出了手势,那也能立即弹出设置好的动作无需等足1秒。当然无论如何都不如你脚本的双击直接激活的快了。

ssc505684708 发表于 2024-5-7 00:33

本帖最后由 ssc505684708 于 2024-5-7 00:39 编辑

thankdad 发表于 2024-5-7 00:25
我看到你的文件名是TP Gesture.exe啊,应该叫TPGesture.exe,因为helper是指定TPGesture.exe唤醒的。目录 ...
目录解压出来是TP Gesture
我把这个改成TPGesture以后,只因图标能在托盘存住了
三键手势可以正常生效,没有闪退了

文件夹名字改回TP Gesture没办法复现闪退,不知道什么原因导致的save后闪退
明天研究研究

ssc505684708 发表于 2024-5-7 00:43

thankdad 发表于 2024-5-7 00:30
我的操作逻辑是双击激活主程序,进入1秒的检测时段,当然如果你灵敏度设置到高,并且在0.1秒做出了手势, ...

理解,因为要实现更多功能,需要一个判定光标移动方向的时间是吧
我这边测试三次点击中键弹出ctrl alt tab菜单的时间与sensitivity高中低设置无关

那个一行脚本不知道是谁写的,不是我写的

thankdad 发表于 2024-5-7 00:44

本帖最后由 thankdad 于 2024-5-7 00:52 编辑

ssc505684708 发表于 2024-5-7 00:43
理解,因为要实现更多功能,需要一个判定光标移动方向的时间是吧
我这边测试三次点击中键弹出ctrl alt ta ...
嗯,这个可以缩短,0点48分的版本就是加快三键连按检测版。

822329 发表于 2024-5-7 08:07

没有看懂,干嘛用的啊

chenxinyi 发表于 2024-5-7 09:56

看样子挺不错的,不过我很少用触摸板,偶尔用下小红点加中键浏览下网页。
看这图标有点仿乔丹的意思?

thankdad 发表于 2024-5-7 10:03

822329 发表于 2024-5-7 08:07
没有看懂,干嘛用的啊

就是你做出一个指点杆或鼠标动作,程序会自动帮你做一件事,比如帮你按下组合键或启动一个程序如记事本。

thankdad 发表于 2024-5-7 11:49

chenxinyi 发表于 2024-5-7 09:56
看样子挺不错的,不过我很少用触摸板,偶尔用下小红点加中键浏览下网页。
看这图标有点仿乔丹的意思? ...

{:1_308:}
是像乔丹嘛?

thankdad 发表于 2024-5-10 20:19

ssc505684708 发表于 2024-5-7 00:18
建议大佬参考一下这个,之前从AHK论坛里面下的,这个响应十分迅速,
TP guesture启动手势时有个光标转圈的 ...

嗯,放到古董机上,确实会有开发机感觉不到的转圈圈,所以我又改了下,加快反应了,现在就算是酷睿2也不会有迟滞了。

ssc505684708 发表于 2024-5-10 20:59

本帖最后由 ssc505684708 于 2024-5-10 21:02 编辑

thankdad 发表于 2024-5-10 20:19
嗯,放到古董机上,确实会有开发机感觉不到的转圈圈,所以我又改了下,加快反应了,现在就算是酷睿2也不 ...
这应该跟古董没关系
根本就没cpu占用,486来了都一个样
另外第二个版本CTRL-ALT-TAB无法设置,点save以后功能自动变ALT

不过无所谓了,其实红点手势效率跟触摸板手势比还是低,平时切窗口都是alt-j, alt-k的AHK全局快捷键,切tab用ctrl-j/k,那个双击中键的脚本的问题是虽节省操作但容易误触
如果能用小红点PTS接口,双击trackpoint启动ALT-TAB还能比较实用,目前这些手势都太浪费操作了,跟键盘快捷键比没优势

thankdad 发表于 2024-5-10 21:04

ssc505684708 发表于 2024-5-10 20:59
这应该跟古董没关系
根本就没cpu占用,486来了都一个样
另外第二个版本CTRL-ALT-TAB无法设置,点save以后 ...

组合键我认的是+号,不认-号

ssc505684708 发表于 2024-5-10 21:15

thankdad 发表于 2024-5-10 21:04
组合键我认的是+号,不认-号

发现了,我的锅
目前能想到的建议就是把这些常用的快捷键设置成独立的选项,提高易用性
还有AHK那个WinMinimize功能也值得搞搞,对标触摸板三指下滑

具体功能可以新建个ahk
LAlt & N::WinMinimize A
alt-N试用下

thankdad 发表于 2024-5-10 21:31

AHK可以支持多个热键啊,我的触发源码(也就是helper)如下:#NoTrayIcon
~MButton::
    If (A_TimeSincePriorHotkey < 250) && (A_TimeSincePriorHotkey <> -1) {
      hwnd := DllCall("FindWindowW",Uint, 0, "Str", "TP Gesture " )
      If (hwnd) {
            StringToSend := ""
            VarSetCapacity(CopyDataStruct, 12, 0)
            NumPut(StrLen(StringToSend) + 1, CopyDataStruct, 4);
            NumPut(&StringToSend, CopyDataStruct, 8);
            DllCall("SendMessageW", Uint, hwnd, Uint, 0x004A, int, 0, Uint, &CopyDataStruct )
      }
    }
return你可以关掉我的helper,用autohotkey运行这段代码,达到一样的效果,我只是为了方便用户打包了而已。


你想定义几个热键,可以直接把几个源码加到一块,比如你这行左ALT+N=最小化,直接加到我的代码后面保存运行,就可以联合触发互不干扰了。

一只鱼! 发表于 2024-5-10 21:43

膜拜大佬,这个也太强了吧^g^

ssc505684708 发表于 2024-5-10 22:01

本帖最后由 ssc505684708 于 2024-5-10 22:09 编辑

thankdad 发表于 2024-5-10 21:31
AHK可以支持多个热键啊,我的触发源码(也就是helper)如下:你可以关掉我的helper,用autohotkey运行这段 ...
我意思是整合到UI里面,比如图下这种,不是alt-N实现


做到UI里面能让更多人发现这应用的实力
很多用户连ALT-TAB界面的组合键都不知道


ssc505684708 发表于 2024-5-10 22:02

本帖最后由 ssc505684708 于 2024-5-10 22:13 编辑

thankdad 发表于 2024-5-10 21:31
AHK可以支持多个热键啊,我的触发源码(也就是helper)如下:你可以关掉我的helper,用autohotkey运行这段 ...
搜了下WinMinimize A可以用win+m实现,但好像还是有区别,win+m会把全部窗口一次性折叠

thankdad 发表于 2024-5-10 22:13

ssc505684708 发表于 2024-5-10 22:02
我意思是整合到UI里面,比如图下这种,不是alt-N实现




trackpoint基本上没有初级用户,而新来的用户大都会用触摸板手势,所以这个软件的潜在用户应该还是能想到各种用法的。再者,我写这种程序纯粹是个人喜好,不为流量,所以也不想做推广啥的了。

ssc505684708 发表于 2024-5-10 23:17

thankdad 发表于 2024-5-10 22:13
trackpoint基本上没有初级用户,而新来的用户大都会用触摸板手势,所以这个软件的潜在用户应该还是能想到 ...
有潜力的
这东西比联想最新那个基于PTS的红点手势靠谱多了
主要还是比较Geek向,普通用户要稍微学习一下
页: [1]
查看完整版本: 【原创】 TP Gesture —— 指点杆手势 1.0.1 Updated