开发者社区> 问答> 正文

怎样限制鼠标只能水平或垂直移动?

怎样限制鼠标只能水平或垂直移动?
因为个人需求需要按住 LShift 时,只允许鼠标水平或垂直移动(即使物理上不是),

目前只能想到获得鼠标当前坐标,更改其 x/y 值,但光标会晃动。

请问有什么方法实现吗?

或者思路也可以

顺便一提,我用的是 AutoHotKey,一个脚本语言。当然如果有代码的话,即使语法不同,我也会学学思路的...

展开
收起
OSC开源社区 2024-05-31 16:05:19 40 0
1 条回答
写回答
取消 提交回答
  • SetBatchLines, -1
    CoordMode, Mouse, Screen
    ~LButton::
    MouseGetPos, , OutputVarY
    While GetKeyState( "LButton" )
      ClipCursor( 1, 0, OutputVarY, A_ScreenWidth, OutputVarY )
    ClipCursor( 0 )
    Return
    
    ClipCursor( Confine=True, x1=0 , y1=0, x2=1, y2=1 ) {
      VarSetCapacity( R, 16, 0 )
      NumPut( x1, &R+0 ), NumPut( y1, &R+4 )
      NumPut( x2, &R+8 ), NumPut( y2, &R+12 )
      Return Confine ? DllCall( "ClipCursor", UInt, &R ) : DllCall( "ClipCursor" )
    }
    return
    

    以上是在国外论坛找到的AutoHotKey脚本

    虽然好使...但看不太懂

    2024-05-31 16:41:53
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载