作者spotline (叶子有几片)
看板EzHotKey
标题[AHK-] 辅助没有滚轮的轨迹球
时间Sat Sep 19 23:21:28 2009
七月的时候买了一支kensington的轨迹球
最便宜的那种
http://us.kensington.com/html/4771.html
可是没有滚轮
虽然官方的mouseworks可以模拟,可是那个实在写得太烂了
滚轮的模拟很lag,非常难操作,而且还有另一个问题
就是装了mouseworks之後,轨迹球按键的点击会延迟
也就是假如你按了左键,程式大约要过个0.5秒才会有反应
像是我要拖曳一个资料夹,不能点了马上拖,要不然游标就会自己跑掉
然後资料夹还留在原地
至於滚轮的模拟,最後是改用之前在键鼠版有人提到的 Marble Mouse Wheel
模拟的效果算是蛮满意的
只是它只能把原本滑鼠的中键或者是另外的第4和第5键设定成为启动滚轮的按键
因为原本就是为了罗技木星没有滚轮来设定的程式
所以原本买来之後的设定方式是用mouseworks来把右键设定成中键
然後利用这个模拟的中键来启动模拟的滚轮
後来电脑重灌,发现轨迹球只要不装mouseworks的话就不会有按键延迟的情况
於是想改用其他的按键设定程式来取代原本的mouseworks
试了很多按键程式,像是 toggle mouse 、按键精灵、X-mouse、mouse IMP
可是这些程式都没办法完成我所希望的设定
我希望的设定很简单,就两个
1. 左右两键一起点的话就模拟成右键
2. 右键就模拟成中键
可是上列的程式都没办法同时满足这两点
但是mouseworks可以,只是那个延迟实在是让我很不想用它
最後看到了AHK,可是要自己写耶,要先看一堆说明............
但是为了这支轨迹球,所以最後还是尽量忍着把一些教学文章看完
最後也终於在一连串try and error之後把我所希望的设定档写出来了
在板上也没看到有人有问过这类的问题
以下就是我写的,或许偶然之中也有人会有一样的问题吧
好像很多人是把多余的按键设定成特定的指定功能
但是没看到有人把AHK拿来解决按键过少的问题
这个方法搭配上marble mouse wheel之後,轨迹球就用得很顺了
用pcman的滑鼠功能来打B完全没问题
虽然原本的手势功能是要按着右键来移动滑鼠
所以可能要按着左右两键再来转轨迹球,这样会很麻烦
但是其实pcman把中键设定成跳出,也就是和方向键按左一样的功能
所以其实阅读文章是蛮方便的
;本script的功能
;1. 在160毫秒之内按下右键後马上放开就是一般的右键
;2. 按着右键不放就等於是按着中键不放,再放开右键就等於是放开中键
;3. 按着右键然後在160毫秒之内也按下左键就是等於一直按着右键,只要不放开右键就
是一直按着右键
RButton::
sleep 160 ;等待160毫秒
GetKeyState, state ,RButton ,P
if state = D ;如果右键被按着
{
GetKeyState, state ,LButton ,P
if state = U ;如果左键没被按着
{
Send {MButton down} ;一直按着中键
Loop
{
GetKeyState, state ,RButton ,P
if state = U
{
Send {MButton up} ;放开中键
break
}
}
}
else ;如果左键被按着
{
Send {RButton down} ;一直按着右键
Loop
{
GetKeyState, state ,RButton ,P
if state = U ;如果右键没被按着
{
Send {RButton up} ;放开右键
break
}
}
}
}
else
{
Send {RButton} ;按一下右键
}
return
程式的排版不是很好,可以work就好了XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.253.129
※ 编辑: spotline 来自: 140.113.253.129 (09/19 23:26)