Featured image of post 【ScrcpyQT】 脚本编写 - 在电脑上高效刷【不背单词】

【ScrcpyQT】 脚本编写 - 在电脑上高效刷【不背单词】

解决了躺着刷容易困😪点久了手指累的问题

【ScrcpyQT】 脚本编写 - 在电脑上高效刷【不背单词】

QT版本下载

和原版不同,这个版本有图形化操作界面 QtScrcpy/README_zh.md at dev · barry-ran/QtScrcpy · GitHub

不背单词的脚本

Json格式,在 QTScrcpy 安装目录中的 keymap 子目录下存放。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
{
	"switchKey": "Key_QuoteLeft",
	"keyMapNodes": [
		{
			"comment": "认识",
			"type": "KMT_CLICK",
			"key": "Key_Left",
			"pos": {
				"x": 0.240781,
				"y": 0.92986
			},
			"switchMap": false
		},
		{
			"comment": "模糊",
			"type": "KMT_CLICK",
			"key": "Key_Down",
			"pos": {
				"x": 0.503254,
				"y": 0.928858
			},
			"switchMap": false
		},
		{
			"comment": "不认识",
			"type": "KMT_CLICK",
			"key": "Key_Right",
			"pos": {
				"x": 0.796095,
				"y": 0.935872
			},
			"switchMap": false
		},
		{
			"comment": "点击单词",
			"type": "KMT_CLICK",
			"key": "Key_Up",
			"pos": {
				"x": 0.171367,
				"y": 0.167335
			},
			"switchMap": false
		},
		{
			"comment": "选单词1",
			"type": "KMT_CLICK",
			"key": "Key_1",
			"pos": {
				"x": 0.926247,
				"y": 0.458918
			},
			"switchMap": false
		},
		{
			"comment": "选单词2",
			"type": "KMT_CLICK",
			"key": "Key_2",
			"pos": {
				"x": 0.596529,
				"y": 0.553106
			},
			"switchMap": false
		},
		{
			"comment": "选单词3",
			"type": "KMT_CLICK",
			"key": "Key_3",
			"pos": {
				"x": 0.681128,
				"y": 0.657315
			},
			"switchMap": false
		},
		{
			"comment": "选单词4",
			"type": "KMT_CLICK",
			"key": "Key_4",
			"pos": {
				"x": 0.611714,
				"y": 0.751503
			},
			"switchMap": false
		}
	]
}

该脚本作用

使用键盘上方的数字键1234分别选择单词辨析的四个选项。
使用方向键左代表认识,下代表模糊,右代表不认识,上代表点击单词。

怎么应用脚本

在 QTScrcpy 安装目录中的 keymap 子目录下存放好json格式的脚本,然后在这里点击刷新,在左侧列表找到对应脚本,点击右侧应用脚本,然后点击下方的启动服务,有时候需要点两下才会启动

怎么启用脚本

进入手机操控界面后,脚本不会立即应用,需要按一下 ~ 这个键,就是Esc键下方的波浪键。
如果想临时禁用这个脚本,就再按一下 ~

————教程结束下面是一些拓展操作————


如何获取坐标

不背单词的常用8个坐标已经在上面给出,并且写入脚本,如果想要新增一些键盘映射,可以参考以下方式。

使用鼠标点击手机画面窗口,然后在QTScrcpy窗口左下角小窗口查看获取,点哪就会显示哪里的坐标

本文给出的 不背单词APP 坐标如下

单词分辨

认识 “pos”: {“x”: 0.240781, “y”: 0.92986}

模糊 “pos”: {“x”: 0.503254, “y”: 0.928858}

不认识 “pos”: {“x”: 0.796095, “y”: 0.935872}

点击单词 “pos”: {“x”: 0.171367, “y”: 0.167335}


选单词1234

1 “pos”: {“x”: 0.926247, “y”: 0.458918} 2 “pos”: {“x”: 0.596529, “y”: 0.553106} 3 “pos”: {“x”: 0.681128, “y”: 0.657315} 4 “pos”: {“x”: 0.611714, “y”: 0.751503}

键盘映射按键码

详细教程

一、脚本中的键盘码解析

脚本里的key/switchKey字段使用的是易读化的通用按键标识(而非直接写十六进制虚拟键码),本质是对底层虚拟键码的 “别名封装”,目的是提升脚本可读性。以下是对应关系和解析:

脚本中的键名 对应实际按键 底层虚拟键码参考(Windows) 功能说明
Key_QuoteLeft 反引号 / 顿号键(`) 0xC0(十六进制) 脚本全局开关(启停整个映射)
Key_Left 左方向键 0x25 触发 “认识” 按钮的鼠标点击
Key_Down 下方向键 0x28 触发 “模糊” 按钮的鼠标点击
Key_Right 右方向键 0x27 触发 “不认识” 按钮的鼠标点击
Key_Up 上方向键 0x26 触发 “点击单词” 的鼠标点击
Key_1/Key_2/Key_3/Key_4 主键盘数字 1-4 0x31~0x34 触发对应单词选项的鼠标点击

⚠️ 注意:这类键名是行业通用的 “易读命名规范”,不同工具的命名可能略有差异(比如有的工具写KeyBackquote而非Key_QuoteLeft),但核心指向同一个物理按键。

二、这类键鼠映射脚本的编写方法

该脚本是JSON 格式的 “按键→鼠标点击” 映射脚本(典型场景:背单词自动化、办公快捷点击、游戏操作简化),核心逻辑是 “按下指定键盘按键 → 触发屏幕指定坐标的鼠标点击”。以下是完整编写方法:

1. 核心结构与字段含义(编写基础)

先理解脚本的 JSON 结构,每个字段的作用是编写的关键:

json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
{
	"switchKey": "全局开关按键",  // 可选:按下该键启停整个脚本
	"keyMapNodes": [           // 必选:所有“按键→动作”规则的数组
		{
			"comment": "规则备注",  // 可选:标注用途,方便维护
			"type": "动作类型",     // 必选:如KMT_CLICK=鼠标点击
			"key": "触发按键",      // 必选:绑定的键盘按键(易读键名)
			"pos": {               // 必选(点击类动作):鼠标点击坐标
				"x": 相对X坐标,    // 0~1的浮点数=屏幕宽度占比(适配不同分辨率)
				"y": 相对Y坐标     // 0~1的浮点数=屏幕高度占比
			},
			"switchMap": false     // 可选:触发后是否切换映射规则
		}
	]
}

各字段的取值规则(避坑关键):

字段 取值要求 示例 核心注意点
switchKey 工具支持的通用键名 Key_QuoteLeft 需匹配工具的 “键名对照表”
comment 任意文字 "认识" 仅备注,不影响脚本执行
type 工具定义的动作常量(大写) KMT_CLICK 常见值:KMT_DBLCLICK(双击)、KMT_PRESS(按键)
key 通用键名(区分大小写) Key_Left/Key_1 不能写十六进制码,需用易读名
pos x/y:0~1 浮点数(相对坐标) {"x":0.24,"y":0.93} 绝对坐标需写整数(如x:462
switchMap true/false(无引号) false 布尔值不能加引号,否则解析报错

2. 编写步骤(从 0 到 1)

步骤 1:明确需求(核心前提)

先梳理清楚脚本的用途,比如这个脚本的需求是:

  • 背单词时,按方向键快速点击 “认识 / 模糊 / 不认识” 按钮;
  • 按数字 1-4 快速选择单词选项;
  • 用反引号键启停整个脚本。
步骤 2:确定按键绑定规则

列出 “按键→动作” 的对应表,示例:

触发按键 动作目标 备注
左方向键 点击 “认识” 按钮 背单词标记
下方向键 点击 “模糊” 按钮 背单词标记
数字 1 点击第一个单词选项 选词作答
步骤 3:获取鼠标点击坐标(关键)

脚本中的pos相对坐标(0~1),适配不同屏幕分辨率,获取方法:

  • 方法 1(推荐):用工具自带的 “坐标拾取器”(如按键精灵、AutoHotkey 的 Window Spy),直接读取目标按钮的 “相对坐标”;

  • 方法 2(手动计算):

    相对 X = 按钮绝对 X 坐标 / 屏幕宽度

    相对 Y = 按钮绝对 Y 坐标 / 屏幕高度

    示例:屏幕 1920×1080,按钮绝对坐标 x=462、y=1004 → 相对 X=462/1920≈0.24,相对 Y=1004/1080≈0.93(和脚本中的值一致)。

步骤 4:按 JSON 规范编写脚本

遵循 JSON 语法规则(核心避坑点):

  • 所有字符串(如key/type)必须用双引号包裹,不能用单引号;
  • 数组元素(keyMapNodes里的对象)之间用逗号分隔,最后一个元素后不要加逗号;
  • 浮点数 / 布尔值直接写,不加引号(如0.24/false);
  • 用在线 JSON 格式化工具(如https://www.json.cn/)排版,提升可读性。
步骤 5:验证与调试

编写完成后,在对应的映射工具中加载脚本,验证:

  1. 按下绑定按键(如左方向键),是否精准点击目标位置;
  2. 全局开关(switchKey)是否能启停脚本;
  3. 若点击位置偏差,微调pos的 x/y 值;
  4. 若按键无响应,核对工具的 “键名对照表”(比如确认Key_QuoteLeft是否被工具识别)。

3. 编写注意事项(避坑指南)

① 键名兼容性:不同工具的键名规范不同(比如 AutoHotkey 写Left,部分框架写Key_Left),需先查工具文档,避免按键绑定失效;

② 坐标类型:确认工具支持 “相对坐标”(0~1)还是 “绝对坐标”(整数),混用会导致点击位置错误;

③ JSON 语法错误:常见问题如 “最后一个数组元素加逗号”“布尔值加引号”,可先用https://jsonlint.com/ 校验语法;

④ 按键冲突:避免绑定系统 / 应用的快捷键(比如不要用Ctrl+C绑定点击,否则复制功能失效);

⑤ 扩展性:若需要双击 / 延迟点击,可扩展type(如KMT_DBLCLICK)或添加delay字段(如"delay": 100,延迟 100 毫秒)。

4. 扩展示例(进阶优化)

若需要增强脚本功能,可基于核心结构扩展:

json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
	"switchKey": "Key_QuoteLeft",
	"keyMapNodes": [
		{
			"comment": "双击单词(延迟100ms)",
			"type": "KMT_DBLCLICK",  // 双击动作
			"key": "Key_Up",
			"pos": {"x":0.171367,"y":0.167335},
			"delay": 100,            // 延迟触发
			"switchMap": false
		},
		{
			"comment": "选单词1",
			"type": "KMT_CLICK",
			"key": "Key_1",
			"pos": {"x":0.926247,"y":0.458918},
			"switchMap": false
		}
	]
}

5. 通用工具适配(补充)

这类 JSON 脚本通常运行在定制化键鼠映射工具中,若要适配通用工具(如 AutoHotkey),可转换为如下语法(示例):

autohotkey

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
; AutoHotkey脚本:左方向键点击“认识”按钮
Left::  ; 按下左方向键触发
    Click, 462, 1004  ; 绝对坐标(1920×1080屏幕)
return

; 反引号键启停脚本
`::
    Suspend  ; 暂停/恢复所有热键
    ToolTip, 脚本% (A_IsSuspended ? "已禁用" : "已启用")
    SetTimer, ToolTip, -1000  ; 提示1秒后消失
return

总结

这类脚本的编写核心是:明确按键 - 动作映射规则 → 规范 JSON 格式 → 精准获取坐标 → 验证调试。关键点是匹配工具的 “键名规范” 和 “坐标类型”,避免语法错误和按键 / 坐标不匹配的问题。如果需要适配具体工具(如按键精灵、Python 键鼠库),可基于上述逻辑调整字段和格式。

使用 Hugo 构建
主题 StackJimmy 设计