键盘控制鼠标移动

记录一下,

windows用autohotkeys

crtl + 方向键 / 空格 :移动鼠标 / 鼠标左击

crtl + shift + 方向键 / 空格: 快速移动鼠标 / 鼠标右击

^up::MouseMove,0,-75,0,r
^+up::MouseMove,0,-15,0,r
^down::MouseMove,0,75,0,r
^+down::MouseMove,0,15,0,r
^left::mousemove,-75,0,0,r
^+left::mousemove,-15,0,0,r
^right::mousemove,75,0,0,r
^+right::mousemove,15,0,0,r
^space::MouseClick, left
^+space::MouseClick, right

mac用hammerspoon ,这个还没做好,无法长按实现持续移动,鼠标点击也还没做,先用着

-- alt + 方向键 :移动鼠标 --
-- alt + cmd + 方向键:快速移动鼠标 --
-- alt + space :鼠标左击 --local screens = hs.screen.allScreens()function moveleft()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"]-100, y=cs["y"] + 0}, screens[1])
endfunction moveleft_accurate()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"]-10, y=cs["y"] + 0}, screens[1])
endfunction moveright()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"]+100, y=cs["y"] + 0}, screens[1])
endfunction moveright_accurate()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"]+10, y=cs["y"] + 0}, screens[1])
endfunction moveup()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"], y=cs["y"]-100}, screens[1])
endfunction moveup_accurate()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"], y=cs["y"]-10}, screens[1])
endfunction movedown()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"], y=cs["y"]+100}, screens[1])
endfunction movedown_accurate()local cs = hs.mouse.getRelativePosition()hs.mouse.setRelativePosition({x= cs["x"], y=cs["y"]+10}, screens[1])
endfunction MouseleftClick()local cs = hs.mouse.getRelativePosition()hs.eventtap.leftClick(cs)
endfunction MouseRightClick()local cs = hs.mouse.getRelativePosition()hs.eventtap.RightClick(cs)
endhs.hotkey.bind({"alt"}, "Left", moveleft)
hs.hotkey.bind({"alt","cmd"}, "Left", moveleft_accurate)
hs.hotkey.bind({"alt"}, "Right", moveright)
hs.hotkey.bind({"alt","cmd"}, "Right", moveright_accurate)
hs.hotkey.bind({"alt"}, "Up", moveup)
hs.hotkey.bind({"alt","cmd"}, "Up", moveup_accurate)
hs.hotkey.bind({"alt"}, "Down", movedown)
hs.hotkey.bind({"alt","cmd"}, "Down", movedown_accurate)
hs.hotkey.bind({"alt"}, "Space", MouseleftClick)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入学习 Redis - 深挖经典数据类型之 string

目录 前言 一、string 类型 1.1、操作命令 set / get (设置 / 获取) mset / mget(批量 > 设置 / 获取) setnx / setex / psetex (设置时指定不同方式) incr / incrby / decr / decrby/ incrbyfloat…

船舶中压配电板应用弧光保护,可解决母排故障短路问题,对于提高船舶电站的安全性、稳定性,降低经济损失具有重要意义。-安科瑞黄安南

摘要:船舶中压配电板弧光故障导致的设备损坏和停电事故,不仅会造成较大的经济损失,而且严重影响船舶电站的安全稳定运行,威胁船舶电站操作人员的安全。弧光保护是基于电力系统开关柜发生弧光故障时而设计的一套母线保护系统&#…

如何让C++代码也弥漫着炎热的感觉

写一段非常炎热的C代码 当然&#xff0c;这里有一个简单的炎热的C代码示例&#xff0c;它演示了一个循环打印输出的程序&#xff1a; #include <iostream> #include <ctime>int main() {std::cout << "炎热的夏日&#xff0c;热力四溢&#xff01;&quo…

分布式存储系统(Ceph)基础

存储基础 存储设备 DAS&#xff1a;IDE、SATA、SCSI、SAS、USBNAS&#xff1a;NFS、CIFSSAN&#xff1a;SCSI、FC SAN、iSCSI 存储内容包括元数据和数据&#xff0c;名称节点&#xff08;NameNode&#xff09;存放元数据&#xff0c;数据节点&#xff08;DataNode&#xff09…

【布局优化】基于遗传算法的车间布局优化 车间设施布局优化【Matlab代码#50】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 车间布局优化2. 基于GA的布局优化模型3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节&#xff1a;资源获取】 1. 车间布局优化 车间设施布置的规划一直是工业工程领域不断研究和探索的内容&am…

JavaWeb(5)——HTML、CSS、JS 快速入门

一、JavaScript 对象 二、JavaScript BOM对象 和 DOM对象 关于BOM主要对 Window 和 location 进行说明&#xff1a; 三、JavaScript 事件监听 事件绑定 常见事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

libcurl库使用实例

libcurl libcurl是一个功能强大的跨平台网络传输库&#xff0c;支持多种协议&#xff0c;包括HTTP、FTP、SMTP等&#xff0c;同时提供了易于使用的API。 安装 ubuntu18.04平台安装 sudo apt-get install libcurl4-openssl-dev实例 这个示例使用libcurl库发送一个简单的HTTP …

数据结构——树

数据结构——树 树&#xff08;Tree&#xff09;是一种常见的数据结构&#xff0c;用于存储具有层级关系的数据。树由一组称为节点&#xff08;Node&#xff09;的元素组成&#xff0c;节点之间通过边连接。其中一个节点被称为根节点&#xff08;Root&#xff09;&#xff0c;根…

数据库的基本查询(二)

目录 一、简单查询二、高级查询2.1 分页2.3 结果集排序2.4 去重 三、条件查询3.1 算术运算符3.2 比较运算符3.3 逻辑运算符3.4 按位运算符3.5 WHERE子句的注意事项 一、简单查询 # 查询t_emp表的所有字段 SELECT * FROM t_emp;# 查询t_emp表的指定字段 SELECT ename, empno FR…

谷歌Bard:ChatGPT之外的第三选择

2023年年初&#xff0c;为了对应ChatGPT方面的压力&#xff0c;谷歌Bard仓促上线&#xff0c;此后便进入了低调前行。目前为止已经迭代了9个版本&#xff0c;也就是在近期的版本更新中支持了中文&#xff08;简体/繁体&#xff09;语言&#xff0c;对国内用户可以说又友好了一步…

RabbitMQ log 文件过大 解决方案

log文件地址 C:\Users\Administrator\AppData\Roaming\RabbitMQ\log\rabbitlocalhost.log log文件作用 rabbitlocalhost.log MQ启动、连接日志 rabbitlocalhost-sasl.log saal用来记录Erlang相关的信息&#xff0c;例如查看Erlang崩溃的报告 RabbitMQ官网Log相关介绍 Log…

物理层——数据通信基础知识

1.典型的数据通信模型 2.数据通信的相关术语 2.1 三种通讯方式 2.2 数据传输方式 2.3 常用编码方式&#xff08;数字信号&#xff09; 曼彻斯特编码 将一个码元分成两个相等的间隔&#xff1b; 前一个间隔为 低电平 &#xff0c;后一个间隔为 高电平 表示码元1&#xff1b; 码…

el-dialog 添加loading;avue-form 表单插槽

效果: 第一步&#xff1a;custom-class"publishDialog" 新起一个类名 <el-dialog title"发布配置" custom-class"publishDialog" :visible.sync"publishDialogVisible" width"800px" :append-to-body"true":b…

实现高效数据处理的利器:Java Stream API 的妙用与性能优化

Java作为一门强大的编程语言&#xff0c;提供了丰富的工具和库来处理数据。其中&#xff0c;Java Stream API&#xff08;流式API&#xff09;是一项强大而灵活的特性&#xff0c;它能够简化数据处理过程&#xff0c;并提供高效的性能。本文将深入探索Java Stream API的使用方法…

babel兼容低版本游览器

文章目录 1. webpack项目的搭建2. babel 命令行使用3. babel的预设与编译器流程4. babel项目中配置4.1 babel-loader与插件的使用4.2 babel-preset使用 5. 游览器兼容性使用5.1 browserslist工具与编写规则5.2 browserslist配置5.3 优化babel的配置文件 6. polyfill6.1 useBuil…

Flutter——最详细(NavigationRail)使用教程

NavigationRail 简介 一个 Material Design 小部件&#xff0c;旨在显示在应用程序的左侧或右侧&#xff0c;以便在少量视图&#xff08;通常在三到五个视图之间&#xff09;之间导航。 使用场景&#xff1a; 通过Row属性&#xff0c;左侧或右侧菜单栏按钮 属性作用onDestinati…

Halcon机器视觉-15种常用缺陷检测实例

一、Halcon 15种常用缺陷检测实例分享 缺陷检测是一种通过计算机视觉技术来检测产品制造过程中的缺陷的方法。该技术可以检测出产品表面的缺陷&#xff0c;如裂纹、凹陷、划痕、气泡等&#xff0c;并且可以实时监测和诊断制造过程中的问题。在制造业中&#xff0c;机器视觉缺陷…

GRE实验

题目参考&#xff1a; 实验步骤&#xff1a; 第一步&#xff1a;地址规划拓扑设计&#xff0c;配置IP地址 R1配置&#xff1a; <Huawei>system-view [Huawei]sy R1 [R1]int g 0/0/1 [R1-GigabitEthernet0/0/1]ip address 192.168.1.1 24 [R1-GigabitEthernet0/0/1]in…

智能电表数据采集器

智能电表数据采集器是一种用于采集智能电表数据的设备&#xff0c;它可以将智能电表的数据传输到远程服务器上&#xff0c;以便进行数据分析和监控。智能电表数据采集器的主要功能是采集智能电表的实时数据&#xff0c;并将其发送到远程服务器上&#xff0c;从而实现对智能电表…

拷贝class文件内容发生报错(二)

又粘到项目里几个文件&#xff0c;这回报错信息是&#xff1a; 16:29:34.892 [main] INFO org.ansj.util.MyStaticValue - init ambiguity to env value is : dict/ansj/ambiguity.dic 16:29:34.892 [main] INFO org.ansj.util.MyStaticValue - init synonyms to env valu…