kmbox Net python调用demo
本章提供kmboxNet的python调用方法,你可以直接import kmNet来调用盒子提供的API.
下面以python3.12版本为例。介绍如何使用kmNet的各个模块。
kmboxNet的pyd点我下载
环境搭建
conda为我们提供基础的python环境。
下载安装conda
Anaconda | The Operating System for AI
安装方法自行百度
创建python环境
打开conda选择Environments
最下脚创建环境
将kmNet的pyd拷贝到虚拟环境的Dlls目录
按照上图所示,将对应版本的pyd拷贝到虚拟环境中,这样就可以直接使用kmNet模块了。
验证kmNet是否正常使用
打开虚拟环境
直接import kmNet,如果出现下面错误。一定是你的pyd版本不对,或者没有放到当前环境的dlls文件夹内。
注意,出现错误首先看dlls里面有没有名字为kmNet.pyd的文件。没有请添加对于版本的pyd
一切正常如下:
使用模块里的API
这里介绍kmNet模块里的各个API的用。
init初始化
init函数需要三个字符串参数,依次为:
ip :盒子的IP地址 (显示屏上会有显示,例如:192.168.2.88) port: 通信端口号 (显示屏上会有显示,例如:6234) mac : 盒子的mac地址(显示屏幕上有显示,例如:12345) 返回值:0正常,非零值请看错误代码
必须调用一次该函数。否则无法与盒子通信。调用前请保证盒子网络通畅。且能ping通盒子。
鼠标类控制函数
move | enc_move控制鼠标移动
鼠标移动x,y个单位。一次性移动。无轨迹模拟,速度最快. 自己写轨迹移动时使用此函数。 返回值:0正常执行,其他值异常
enc_move用法同move.区别在于数据包是加密的。无法通过抓包工具逆向特征数据包。更安全。
left | enc_left控制鼠标左键
鼠标左键控制 isdown :0松开 ,1按下 返回值:0正常执行,其他值异常。
kmNet.left(1)#鼠标左键按下
kmNet.left(0)#鼠标左键松开
enc_left用法同left.区别在于数据包是加密的。无法通过抓包工具逆向特征数据包。更安全。
right | enc_right控制鼠标右键
鼠标右键控制 isdown :0松开 ,1按下 返回值:0正常执行,其他值异常。
kmNet.right(1)#鼠标右键按下
kmNet.right(0)#鼠标右键松开
enc_right用法同right.区别在于数据包是加密的。无法通过抓包工具逆向特征数据包。更安全。
middle | enc_middle控制鼠标中键
鼠标中键控制 isdown :0松开 ,1按下 返回值:0正常执行,其他值异常。
kmNet.middle(1)#鼠标中键按下
kmNet.middle(0)#鼠标中键松开
enc_middle用法同middle.区别在于数据包是加密的。无法通过抓包工具逆向特征数据包。更安全。
wheel | enc_wheel控制鼠标滚轮
鼠标滚轮控制, 大于0下移动,小于0上移动
kmNet.wheel(1)#鼠标滚轮下移
kmNet.wheel(-1)#鼠标滚轮上移
enc_wheel用法同wheel.区别在于数据包是加密的。无法通过抓包工具逆向特征数据包。更安全。
mouse | enc_mouse控制鼠标所有参数
此函数需要四个参数:
1、鼠标按键控制。int类型。每个位表示一个按键。
2、鼠标x参数,int类型。取值范围[-32768,32768]
3、鼠标y参数,int类型。取值范围[-32768,32768]
4、鼠标滚轮参数,int类型。取值范围[-128,128]
kmNet.mouse(1,10,20,3) #鼠标左键按下,x=10,y=20,wheel=3
kmNet.mouse(0,-10,-20,-3) #鼠标左键松开,x=-10,y=-20,wheel=-3
move_auto | enc_move_auto模拟移动
鼠标移动x,y个单位。模拟人为移动x,y个单位。 没有写移动曲线的推荐用此函数。此函数不会出现跳跃现象,按照最小步进逼近 目标点。耗时比move高。ms是设置移动需要多少毫秒.注意ms给的值不要太小,太小一样会认定为机器鼠标。 尽量像人操作。实际用时会比ms小。
#移动到100,200坐标,指定耗时300ms
kmNet.move_auto(100,200,300)
move_beizer | enc_move_beizer二阶贝塞尔曲线
二阶贝塞尔曲线控制,此函数需要7个参数。依次为: x,y :目标点坐标 ms :拟合此过程用时(单位ms) x1,y1 :控制点p1点坐标 x2,y2 :控制点p2点坐标
#移动到100,200坐标,指定耗时300ms,控制点1坐标(-50,-60),控制点2坐标(70,80)
kmNet.move_beizer(100,200,300,-50,-60,70,80)
键盘类控制函数
keydown | enc_keydown控制键盘按键按下
用于控制键盘按键按下。通常与keyup搭配使用,输入参数为键盘按键值。所有按键值请参考附录
例如要保持键盘a键按下:
kmNet.keydown(4) #保持键盘a键按下
keyup | enc_keyup控制键盘按键松开
用于控制键盘按键松开。通常与keydown搭配使用,输入参数为键盘按键值。所有按键值请参考附录
例如要键盘a键弹起:
kmNet.keyup(4) #键盘a键松开
监控类函数
kmbox Net支持监控盒子上的键盘鼠标状态。可用于了解物理键鼠真实状态。
monitor 开启或者关闭物理键鼠监控
在使用监控类函数前需要调用一次monitor函数。打开监控功能。其参数是监控的端口号。
如果不需要监控功能。可以给参数0关闭。端口号取值范围是1024到49151。注意端口号不要与系统的端口冲突。
kmNet.monitor(8888) #开启物理键鼠监控功能。使用端口号8888接收物理键鼠数据
kmNet.monitor(0) #关闭物理键鼠监控功能
isdown_left查询鼠标左键是否按下
打开监控功能后,可以通过此函数获取接盒子上物理鼠标左键状态。
返回值:
0:物理鼠标松开
1:物理鼠标按下
import time
kmNet.monitor(8888) # 开启物理键鼠监控功能。使用端口号8888接收物理键鼠数据
while 1:
print('mouse left ',kmNet.isdown_left())
time.sleep(0.5)
输出如下: 左键按下是1 ,松开是0
mouse left 0 mouse left 0 mouse left 1 mouse left 1 mouse left 1
isdown_middle查询鼠标中键是否按下
打开监控功能后,可以通过此函数获取接盒子上物理鼠标中键状态。
返回值:
0:物理鼠标松开
1:物理鼠标按下
import time
kmNet.monitor(8888) # 开启物理键鼠监控功能。使用端口号8888接收物理键鼠数据
while 1:
print('mouse middle',kmNet.isdown_middle())
time.sleep(0.5)
输出如下:中键按下是1 ,松开是0
mouse middle 0 mouse middle 1