用Python开发输入法后台(1)

首先,安装PIME,github地址: https://github.com/EasyIME/PIME

下载安装PIME-1.3.0-stable-setup.exe,就可以得到一个输入法,后端是python,在安装目录下‘C:\Program Files (x86)\PIME\’,python目录就是运行脚本。
入口点是'server.py',其中安装目录下的‘PIMELauncher.exe’是负责前后台通信的,如果想修改脚本重新加载,可终止此进程再重新使用即可。
前后台通信是纯文本消息,下面是我记录的一部分交互消息:

 改写server.py文件,就可实现后台逻辑了。

# 当切换到当前的输入法时: init, onActivate
2023-04-15 13:00:21,933 - server.py[line:73] - INFO: cf06fbc0-5d7c-4dba-84d2-cb8c410039d9|{"id":"{9c2d6c68-9ea6-4cfb-a769-7e619db7f267}","isConsole":false,"isMetroApp":false,"isUiLess":false,"isWindows8Above":true,"method":"init","seqNum":0}
2023-04-15 13:00:21,933 - server.py[line:92] - INFO: PIME_MSG|cf06fbc0-5d7c-4dba-84d2-cb8c410039d9|{"seqNum": 0, "success": true}
2023-04-15 13:00:21,933 - server.py[line:73] - INFO: cf06fbc0-5d7c-4dba-84d2-cb8c410039d9|{"isKeyboardOpen":true,"method":"onActivate","seqNum":1}
2023-04-15 13:00:22,005 - server.py[line:92] - INFO: PIME_MSG|cf06fbc0-5d7c-4dba-84d2-cb8c410039d9|{"customizeUI": {"candFontSize": 12, "candFontName": "Microsoft YaHei", "candPerRow": 1, "candUseCursor": true}, "addButton": [{"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\eng_full_capson.ico", "tooltip": "�������ГQ", "commandId": 1, "id": "windows-mode-icon"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\eng.ico", "text": "�������ГQ", "tooltip": "�������ГQ", "commandId": 2, "id": "switch-lang"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\full.ico", "text": "ȫ����ГQ", "tooltip": "ȫ��/����ГQ", "commandId": 3, "id": "switch-shape"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\config.ico", "text": "�O��", "tooltip": "�O��", "type": "menu", "id": "settings"}], "changeButton": [{"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi_half_capsoff.ico", "id": "windows-mode-icon"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi.ico", "id": "switch-lang"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\half.ico", "id": "switch-shape"}], "success": true, "seqNum": 1}
# 当切换到别的输入法时: onDeactivate, close
2023-04-15 13:00:23,087 - server.py[line:73] - INFO: cf06fbc0-5d7c-4dba-84d2-cb8c410039d9|{"method":"onDeactivate","seqNum":6}
2023-04-15 13:00:23,087 - server.py[line:92] - INFO: PIME_MSG|cf06fbc0-5d7c-4dba-84d2-cb8c410039d9|{"showCandidates": false, "compositionString": "", "compositionCursor": 0, "removeButton": ["switch-lang", "switch-shape", "settings", "windows-mode-icon"], "success": true, "seqNum": 6}
2023-04-15 13:00:23,087 - server.py[line:73] - INFO: cf06fbc0-5d7c-4dba-84d2-cb8c410039d9|{"method":"close"}
# 用户输入w, filterKeyDown,onKeyDown,filterKeyDown(一个w产生3个消息)
2023-04-12 13:29:23,363 - server2.py[line:80] - INFO: 576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"charCode":119,"isExtended":false,"keyCode":87,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"filterKeyDown","repeatCount":1,"scanCode":0,"seqNum":12}
2023-04-12 13:29:23,363 - server2.py[line:95] - INFO: PIME_MSG|576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"return": true, "success": true, "seqNum": 12}
2023-04-12 13:29:23,365 - server2.py[line:80] - INFO: 576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"charCode":119,"isExtended":false,"keyCode":87,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"onKeyDown","repeatCount":1,"scanCode":0,"seqNum":13}
2023-04-12 13:29:23,365 - server2.py[line:95] - INFO: PIME_MSG|576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"changeButton": [{"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi_half_capsoff.ico", "id": "windows-mode-icon"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi.ico", "id": "switch-lang"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\half.ico", "id": "switch-shape"}], "setSelKeys": "12345", "compositionString": "w", "compositionCursor": 1, "candidateList": ["我", "爲", "玩", "問", "無"], "candidateCursor": 0, "showCandidates": true, "return": true, "success": true, "seqNum": 13}
2023-04-12 13:29:23,370 - server2.py[line:80] - INFO: 576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"charCode":119,"isExtended":false,"keyCode":87,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"filterKeyUp","repeatCount":1,"scanCode":0,"seqNum":14}
2023-04-12 13:29:23,370 - server2.py[line:95] - INFO: PIME_MSG|576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"return": 0, "success": true, "seqNum": 14}
# 用户输入w之后, 再输入空格, 选择默认第一个候选词: filterKeyDown, onKeyDown, onCompositionTerminated, filterKeyUp
2023-04-12 13:29:25,274 - server2.py[line:80] - INFO: 576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"charCode":32,"isExtended":false,"keyCode":32,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"filterKeyDown","repeatCount":1,"scanCode":0,"seqNum":15}
2023-04-12 13:29:25,274 - server2.py[line:95] - INFO: PIME_MSG|576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"return": true, "success": true, "seqNum": 15}
2023-04-12 13:29:25,274 - server2.py[line:80] - INFO: 576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"charCode":32,"isExtended":false,"keyCode":32,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"onKeyDown","repeatCount":1,"scanCode":0,"seqNum":16}
2023-04-12 13:29:25,274 - server2.py[line:95] - INFO: PIME_MSG|576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"changeButton": [{"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi_half_capsoff.ico", "id": "windows-mode-icon"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi.ico", "id": "switch-lang"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\half.ico", "id": "switch-shape"}], "commitString": "我", "showCandidates": false, "compositionString": "", "compositionCursor": 0, "return": true, "success": true, "seqNum": 16}
2023-04-12 13:29:25,274 - server2.py[line:80] - INFO: 576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"forced":false,"method":"onCompositionTerminated","seqNum":17}
2023-04-12 13:29:25,274 - server2.py[line:95] - INFO: PIME_MSG|576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"success": true, "seqNum": 17}
2023-04-12 13:29:25,372 - server2.py[line:80] - INFO: 576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"charCode":32,"isExtended":false,"keyCode":32,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"filterKeyUp","repeatCount":1,"scanCode":0,"seqNum":18}
2023-04-12 13:29:25,372 - server2.py[line:95] - INFO: PIME_MSG|576d3bee-73dd-4ca5-bae3-940268c9c9e1|{"return": 0, "success": true, "seqNum": 18}
# 用户输入'ks', 下面是输入s时的回复
2023-04-16 16:10:58,358 - server.py[line:73] - INFO: 04b6150d-0e0d-45dc-9947-d954c2c6df0a|{"charCode":115,"isExtended":false,"keyCode":83,"keyStates":[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"onKeyDown","repeatCount":1,"scanCode":0,"seqNum":8}
2023-04-16 16:10:58,358 - server.py[line:92] - INFO: PIME_MSG|04b6150d-0e0d-45dc-9947-d954c2c6df0a|{"changeButton": [{"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi_half_capsoff.ico", "id": "windows-mode-icon"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi.ico", "id": "switch-lang"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\half.ico", "id": "switch-shape"}], "compositionString": "k s", "compositionCursor": 3, "candidateList": ["開始", "可是", "考試", "快速", "考生"], "candidateCursor": 0, "showCandidates": true, "return": true, "success": true, "seqNum": 8}
# 在输入状态, 比如用户输入'w', 按esc键的处理过程: filterKeyDown, onKeyDown, onCompositionTerminated, filterKeyUp
2023-05-15 12:00:03,213 - server.py[line:73] - INFO: 5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"charCode":27,"isExtended":false,"keyCode":27,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"filterKeyDown","repeatCount":1,"scanCode":0,"seqNum":7}
2023-05-15 12:00:03,213 - server.py[line:92] - INFO: PIME_MSG|5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"return": true, "success": true, "seqNum": 7}
2023-05-15 12:00:03,213 - server.py[line:73] - INFO: 5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"charCode":27,"isExtended":false,"keyCode":27,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"onKeyDown","repeatCount":1,"scanCode":0,"seqNum":8}
2023-05-15 12:00:03,213 - server.py[line:92] - INFO: PIME_MSG|5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"changeButton": [{"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi_half_capsoff.ico", "id": "windows-mode-icon"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\chi.ico", "id": "switch-lang"}, {"icon": "C:\\Program Files (x86)\\PIME\\python\\input_methods\\rime\\icons\\half.ico", "id": "switch-shape"}], "showCandidates": false, "compositionString": "", "compositionCursor": 0, "return": true, "success": true, "seqNum": 8}
2023-05-15 12:00:03,220 - server.py[line:73] - INFO: 5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"forced":false,"method":"onCompositionTerminated","seqNum":9}
2023-05-15 12:00:03,220 - server.py[line:92] - INFO: PIME_MSG|5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"success": true, "seqNum": 9}
2023-05-15 12:00:03,321 - server.py[line:73] - INFO: 5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"charCode":27,"isExtended":false,"keyCode":27,"keyStates":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0],"method":"filterKeyUp","repeatCount":1,"scanCode":0,"seqNum":10}
2023-05-15 12:00:03,321 - server.py[line:92] - INFO: PIME_MSG|5e471d15-5c3b-4a71-aa12-1ce25fc0d162|{"return": 0, "success": true, "seqNum": 10}
posted @ 2023-05-17 10:55  顺其自然,道法自然  阅读(195)  评论(0编辑  收藏  举报