V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JCZ2MkKb5S8ZX9pq
V2EX  ›  Windows

求键盘替代鼠标的方法

  •  
  •   JCZ2MkKb5S8ZX9pq · 2020-05-31 15:43:55 +08:00 · 1681 次点击
    这是一个创建于 1398 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    • 客厅电脑,不方便用鼠标。
    • 现在用的是微软 all in one,带触摸板的那个。缺点是距离远了收讯不大好,而且有点大有点重。
    • 考虑换罗技 K380 这类小键盘玩玩。因为有时候还要打字,那种手掌迷你键盘不考虑。

    问题

    • 用键盘能完全替代鼠标动作吗?毕竟有些东西按键操作不方便。
    • 记得好像以前 windows 自带这个功能的,但太久不用,不知道具体是啥功能了。
    • 考虑能不能用 auto hotkey 设定一下,比如 caps+方向,来实现鼠标移动效果。

    PS:现在其实主要是用 xbox 一代的手柄,配合 Xpadder,非常好用。但这个基本是纯鼠标+回车空格之类的功能键。影音上网够用,不能打字。

    第 1 条附言  ·  2020-05-31 21:42:05 +08:00

    找到方法了。 Caps+方向慢移,Caps+LShift+方向快移。

    ;一直关闭 Capslock
    SetCapsLockState, AlwaysOff
    
    ;模拟鼠标
    CapsLock & Up::
        MouseGetPos, x, y
        If GetKeyState("LShift","p")
            MouseMove, x, y-100
        else
            MouseMove, x, y-10
    return
    
    CapsLock & Left::
        MouseGetPos, x, y
        If GetKeyState("LShift","p")
            MouseMove, x-100, y
        else
            MouseMove, x-10, y
    return
    
    CapsLock & Down::
        MouseGetPos, x, y
        If GetKeyState("LShift","p")
            MouseMove, x, y+100
        else
            MouseMove, x, y+10
    return
    
    CapsLock & Right::
        MouseGetPos, x, y
        If GetKeyState("LShift","p")
            MouseMove, x+100, y
        else
            MouseMove, x+10, y
    return
    
    
    ;中文输入法下切换中英文
    CapsLock::^Space
    
    第 2 条附言  ·  2020-06-01 05:08:39 +08:00

    补一个左右键点击,目前我就用到这些了。

    CapsLock & Enter::
        If GetKeyState("LShift","p")
            MouseClick, right
        else
            MouseClick, left
    return
    
    7 条回复    2020-05-31 21:51:55 +08:00
    ager
        1
    ager  
       2020-05-31 17:19:17 +08:00
    联想小红点键盘值得推荐
    ager
        2
    ager  
       2020-05-31 17:19:59 +08:00
    Lenovo 联想发布新款 ThinkPad TrackPoint Keyboard II 键盘,售价 99 美元(约 689 元)
    systemcall
        3
    systemcall  
       2020-05-31 17:34:56 +08:00 via Android   ❤️ 1
    Windows 自带的是 鼠标键 ,搜索一下就有
    也许可以试试 ds4,用 ds4windows 做按键映射,勉强能用
    JCZ2MkKb5S8ZX9pq
        4
    JCZ2MkKb5S8ZX9pq  
    OP
       2020-05-31 21:15:56 +08:00
    @systemcall 对哦,可是我没小键盘了。有些键盘可以把中部映射为小键盘,但摸黑摸起来不太方便。
    JCZ2MkKb5S8ZX9pq
        5
    JCZ2MkKb5S8ZX9pq  
    OP
       2020-05-31 21:42:39 +08:00
    @ager
    @systemcall
    搞定了,auto hotkey 。append 代码了。
    systemcall
        6
    systemcall  
       2020-05-31 21:47:18 +08:00 via Android
    @JCZ2MkKb5S8ZX9pq 感觉要是能够做些加速之类的处理会比较好,苹果的触摸板比较舒服很重要的原因是因为算法
    windows 自带的鼠标键如果分辨率很低体验倒是还可以,不过这么多年没优化了,现在那套算法反而是相当于负优化
    ds4windows 也没怎么处理,所以也不怎么好用。但是 ds4 在 ps4 上倒是很舒服,不知道有没有办法抄算法
    JCZ2MkKb5S8ZX9pq
        7
    JCZ2MkKb5S8ZX9pq  
    OP
       2020-05-31 21:51:55 +08:00
    @systemcall 现在的代码已经直接写了两档速度,按住 shift 是一次移 100px,不按是 10px,不过视觉上感觉 100 就是跳帧了。

    反正低频需求,凑合用着。autohotkey 的语法不懂,加速度其实也就加个速度变量吧,懒得深入了,不知道怎么测试,每次退出重运行太麻烦了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2859 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:27 · PVG 22:27 · LAX 07:27 · JFK 10:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.