Appearance
DHZBOX模块
创建DHZ外设实例
lua
local dhzkm = newDHZBOX()功能:创建一个与 DHZBOX 硬件通讯的实例,用于后续所有鼠标 / 键盘操作。
返回值:dhzkm,DHZBOX 实例。
注意:所有后续 API 均需使用该实例调用。
示例:
lua
local dhzkm = newDHZBOX()初始化DHZBOX
初始化
lua
dhzkm:Init(ip, port, jm)功能:连接DHZBOX。
参数:
ipstring盒子 IP 地址。portnumberUDP 端口。jmnumber加密随机因子(1–7)。
返回值:boolean,true=成功, false=失败
示例:
lua
local ok = dhzkm:Init("192.168.1.55", 9000, 3) -- 仅第一次需要
if not ok then
print("DHZBOX 连接失败!")
return
end
print("DHZBOX 连接成功!")相对移动鼠标
相对当前鼠标位置移动
lua
dhzkm:Mouse_MoreR(x, y)功能:相对当前鼠标位置移动指定的 X 和 Y 距离。
参数:
xnumber鼠标在 X 轴上的相对移动距离。正数向右,负数向左。ynumber鼠标在 Y 轴上的相对移动距离。正数向下,负数向上。
返回值:无
示例:
lua
dhzkm:Mouse_MoreR(100, 50) -- 鼠标向右移动100像素,向下移动50像素
dhzkm:Mouse_MoreR(-20, -30) -- 鼠标向左移动20像素,向上移动30像素鼠标点击
模拟鼠标按键动作
lua
dhzkm:Mouse_Click(button, press)功能:模拟鼠标按键的按下或释放动作。
参数:
button:整数,按钮编号(1=左键 2=右键 3=中键)press:boolean,true表示按下,false表示释放
示例:
lua
-- 模拟左键点击(按下并释放)
dhzkm:Mouse_Click(1, true)
dhzkm:Mouse_Click(1, false)异步鼠标点击
异步模拟鼠标点击动作
lua
dhzkm:Mouse_Click_Async(button, firstDelay, midDelay, waitDelay)功能:在多线程中模拟完整的鼠标点击动作(按下-保持-释放)。
参数:
button:整数,按钮编号(1=左键,2=右键 目前只支持左右键)firstDelay:整数(可选),初次延迟(毫秒),默认0midDelay:整数(可选),中间延迟(毫秒),默认30waitDelay:整数(可选),收尾延迟(毫秒),默认0
示例:
lua
-- 模拟带延迟的右键点击
dhzkm:Mouse_Click_Async(1, 100, 50, 100)控制鼠标滚轮
控制鼠标滚轮滚动
lua
dhzkm:Mouse_Wheel(steps)功能:控制鼠标滚轮向上或向下滚动指定的步数。
参数:
stepsnumber滚动的步数。正数表示向上滚动(远离用户),负数表示向下滚动(靠近用户)。DHZBOX通常使用120的倍数作为单位。
返回值:无
示例:
lua
dhzkm:Mouse_Wheel(120) -- 鼠标滚轮向上滚动一格
dhzkm:Mouse_Wheel(-240) -- 鼠标滚轮向下滚动两格鼠标综合控制
同时控制鼠标按键、移动和滚轮
lua
dhzkm:Mouse(button, x, y, w)功能:在一个命令中同时控制鼠标的按键状态、相对移动和滚轮滚动。
参数:
buttonnumber按键的组合状态。这是一个位掩码,表示哪些按键被按下。1= 左键2= 右键4= 中键8= 侧键116= 侧键2- 可以通过
|运算符组合,例如1 | 2表示左键和右键同时按下。
xnumber鼠标在 X 轴上的相对移动距离。ynumber鼠标在 Y 轴上的相对移动距离。wnumber滚轮滚动距离。正数向上,负数向下。
返回值:无
注意:此函数可以将多个鼠标操作打包在一个 UDP 包中发送,提高效率。
示例:
lua
-- 按下左键,同时鼠标向右移动50像素,向下移动20像素,滚轮向上滚动120步
dhzkm:Mouse(1, 50, -20, 120)
-- 释放所有按键,鼠标不移动,滚轮不滚动
dhzkm:Mouse(0, 0, 0, 0)启动/停止状态监控
启动或停止从DHZBOX接收鼠标/键盘状态信息
lua
dhzkm:Monitor(port)功能:启动一个后台线程,用于从DHZBOX接收实时的鼠标按键和键盘按键状态。传入 0 表示停止监控。
参数:
portnumber用于接收状态的本地 UDP 端口号。如果传入0,则停止状态监控。
返回值:无
注意:状态查询(IsDownLeft 等函数)需要先通过此函数开启监控。
示例:
lua
dhzkm:Monitor(9800) -- 启动状态监控,在本地9800端口接收数据
-- ... 可以在这里查询状态 ...
dhzkm:Monitor(0) -- 停止状态监控按下键盘按键
模拟键盘按键按下
lua
dhzkm:KeyDown(key_str)功能:模拟指定键盘按键的按下动作。
参数:
key_strstring按键的名称字符串。例如"A","enter","space","f1","left"等。具体支持的键名请参考DHZBOX的官方文档。
返回值:无
示例:
lua
dhzkm:KeyDown("W") -- 按下W键
dhzkm:KeyDown("space") -- 按下空格键
dhzkm:KeyDown("ctrl") -- 按下Ctrl键释放键盘按键
模拟键盘按键释放
lua
dhzkm:KeyUp(key_str)功能:模拟指定键盘按键的释放动作。
参数:
key_strstring按键的名称字符串。与KeyDown支持的键名相同。
返回值:无
示例:
lua
dhzkm:KeyUp("W") -- 释放W键
dhzkm:KeyUp("space") -- 释放空格键
dhzkm:KeyUp("ctrl") -- 释放Ctrl键查询鼠标左键状态
查询鼠标左键是否按下
lua
local state = dhzkm:Get_Mouse_Left()功能:获取当前鼠标左键的按下状态。
参数:无
返回值:boolean,true 表示鼠标左键当前按下,false 表示未按下。
注意:此函数需要先通过 Monitor 开启状态监控才能获取到实时数据。
示例:
lua
-- 假设已开启监控 dhzkm:Monitor(9800)
if dhzkm:Get_Mouse_Left() then
print("鼠标左键当前按下")
else
print("鼠标左键当前未按下")
end查询鼠标中键状态
查询鼠标中键是否按下
lua
local state = dhzkm:Get_Mouse_Middle()功能:获取当前鼠标中键的按下状态。
参数:无
返回值:boolean,true 表示鼠标中键当前按下,false 表示未按下。
注意:此函数需要先通过 Monitor 开启状态监控才能获取到实时数据。
示例:
lua
-- 假设已开启监控 dhzkm:Monitor(9800)
if dhzkm:Get_Mouse_Middle() then
print("鼠标中键当前按下")
end查询鼠标右键状态
查询鼠标右键是否按下
lua
local state = dhzkm:Get_Mouse_Right()功能:获取当前鼠标右键的按下状态。
参数:无
返回值:boolean,true 表示鼠标右键当前按下,false 表示未按下。
注意:此函数需要先通过 Monitor 开启状态监控才能获取到实时数据。
示例:
lua
-- 假设已开启监控 dhzkm:Monitor(9800)
if dhzkm:Get_Mouse_Right() then
print("鼠标右键当前按下")
end查询鼠标侧键1状态
查询鼠标侧键1是否按下
lua
local state = dhzkm:Get_Mouse_Side1()功能:获取当前鼠标侧键1(通常是下侧键或前进键)的按下状态。
参数:无
返回值:boolean,true 表示鼠标侧键1当前按下,false 表示未按下。
注意:此函数需要先通过 Monitor 开启状态监控才能获取到实时数据。
示例:
lua
-- 假设已开启监控 dhzkm:Monitor(9800)
if dhzkm:Get_Mouse_Side1() then
print("鼠标侧键1当前按下")
end查询鼠标侧键2状态
查询鼠标侧键2是否按下
lua
local state = dhzkm:Get_Mouse_Side2()功能:获取当前鼠标侧键2(通常是上侧键或后退键)的按下状态。
参数:无
返回值:boolean,true 表示鼠标侧键2当前按下,false 表示未按下。
注意:此函数需要先通过 Monitor 开启状态监控才能获取到实时数据。
示例:
lua
-- 假设已开启监控 dhzkm:Monitor(9800)
if dhzkm:Get_Mouse_Side2() then
print("鼠标侧键2当前按下")
end查询当前按下的键盘按键
查询当前按下的键盘按键名称
lua
local key_name = dhzkm:Isdown()功能:获取当前按下的键盘按键的名称字符串。如果同时按下多个按键,可能只返回其中一个,或者返回组合字符串(具体取决于DHZBOX的实现)。
参数:无
返回值:string,当前按下的键盘按键名称。如果没有按键按下,返回空字符串 ""。
注意:此函数需要先通过 Monitor 开启状态监控才能获取到实时数据。
示例:
lua
-- 假设已开启监控 dhzkm:Monitor(9800)
local current_key = dhzkm:Isdown()
if current_key ~= "" then
print("当前按下的键是: " .. current_key)
else
print("没有键盘按键按下")
end屏蔽/解除鼠标左键
屏蔽或解除鼠标左键事件
lua
dhzkm:Mask_left(state)功能:控制DHZBOX是否将鼠标左键的物理点击事件传递给操作系统。当屏蔽时,即使物理按下左键,操作系统也接收不到该事件。
参数:
statenumber屏蔽状态。1表示屏蔽,0表示解除屏蔽。
返回值:无
示例:
lua
dhzkm:Mask_left(1) -- 屏蔽鼠标左键
-- 此时物理点击左键不会有反应
dhzkm:Mask_left(0) -- 解除鼠标左键屏蔽屏蔽/解除鼠标右键
屏蔽或解除鼠标右键事件
lua
dhzkm:Mask_right(state)功能:控制DHZBOX是否将鼠标右键的物理点击事件传递给操作系统。
参数:
statenumber屏蔽状态。1表示屏蔽,0表示解除屏蔽。
返回值:无
示例:
lua
dhzkm:Mask_right(1) -- 屏蔽鼠标右键屏蔽/解除鼠标中键
屏蔽或解除鼠标中键事件
lua
dhzkm:Mask_middle(state)功能:控制DHZBOX是否将鼠标中键的物理点击事件传递给操作系统。
参数:
statenumber屏蔽状态。1表示屏蔽,0表示解除屏蔽。
返回值:无
示例:
lua
dhzkm:Mask_middle(1) -- 屏蔽鼠标中键屏蔽/解除鼠标侧键1
屏蔽或解除鼠标侧键1事件
lua
dhzkm:Mask_side1(state)功能:控制DHZBOX是否将鼠标侧键1的物理点击事件传递给操作系统。
参数:
statenumber屏蔽状态。1表示屏蔽,0表示解除屏蔽。
返回值:无
示例:
lua
dhzkm:Mask_side1(1) -- 屏蔽鼠标侧键1屏蔽/解除鼠标侧键2
屏蔽或解除鼠标侧键2事件
lua
dhzkm:Mask_side2(state)功能:控制DHZBOX是否将鼠标侧键2的物理点击事件传递给操作系统。
参数:
statenumber屏蔽状态。1表示屏蔽,0表示解除屏蔽。
返回值:无
示例:
lua
dhzkm:Mask_side2(1) -- 屏蔽鼠标侧键2解除键盘按键屏蔽
解除指定键盘按键的屏蔽
lua
dhzkm:DisMask_keyboard(key_str)功能:允许DHZBOX将指定键盘按键的物理事件重新传递给操作系统。这通常用于解除先前通过其他方式(例如DHZBOX内部配置或特定模式)对某个按键的屏蔽。
参数:
key_strstring要解除屏蔽的按键名称字符串。例如"A","enter","space"等。
返回值:无
注意:此函数是解除屏蔽。如果需要屏蔽键盘按键,请查阅DHZBOX的整体键盘屏蔽功能或相关文档。
示例:
lua
-- 假设'A'键被DHZBOX屏蔽了
dhzkm:DisMask_keyboard("A") -- 解除'A'键的屏蔽