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

1716024703979

最下脚创建环境

1716024748273

1716024871230

将kmNet的pyd拷贝到虚拟环境的Dlls目录

1716025096996

按照上图所示,将对应版本的pyd拷贝到虚拟环境中,这样就可以直接使用kmNet模块了。

验证kmNet是否正常使用

打开虚拟环境

1716025408723

直接import kmNet,如果出现下面错误。一定是你的pyd版本不对,或者没有放到当前环境的dlls文件夹内。

1716025472356

注意,出现错误首先看dlls里面有没有名字为kmNet.pyd的文件。没有请添加对于版本的pyd

一切正常如下:

1716026142271

使用模块里的API

这里介绍kmNet模块里的各个API的用。

init初始化

init函数需要三个字符串参数,依次为:

ip :盒子的IP地址 (显示屏上会有显示,例如:192.168.2.88) port: 通信端口号 (显示屏上会有显示,例如:6234) mac : 盒子的mac地址(显示屏幕上有显示,例如:12345) 返回值:0正常,非零值请看错误代码

必须调用一次该函数。否则无法与盒子通信。调用前请保证盒子网络通畅。且能ping通盒子。

1716026996331

鼠标类控制函数

move | enc_move控制鼠标移动

鼠标移动x,y个单位。一次性移动。无轨迹模拟,速度最快. 自己写轨迹移动时使用此函数。 返回值:0正常执行,其他值异常

1716027188167

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