您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > msdk使用说明书-双头盒子
msdk接口库使用说明书20160V3.1第1页共23页msdk接口库使用说明书感谢您使用北京飞易来科技有限公司的产品和服务!1.msdk概述msdk接口库支持UI013_W单头盒子以及UI012_WU双头盒子。msdk接口库msdk.dll分X86的32位、X64的64位两个版本。如果有开发经验,可以使用X64的64位msdk.dll,APP只能编译成X64模式,只能在64位windows上执行。我们推荐使用X86的32位msdk.dll,APP只能编译成x86模式,APP可以在32位、64位windows上执行。msdk接口库使用说明书20160V3.1第2页共23页2.双头盒子简介盒子可以同时模拟USB键盘和鼠标,将从主控机的USB接收来的数据转换为键盘或鼠标格式的数据发给被控机,主控机从而可以控制被控机或在被控机的记事本中将数据显示出来。将盒子的从USB(无孔一端)接口接到需要控制的被控机上;将串口或主USB(有孔一端)接到主控机上。双头盒子需要使用usb延长线来连接。主控机和被控机可以是同一台PC。2.1.盒子功能、性能全速或低速USBHID无驱接口,无需安装驱动、应用软件,即插即用。支持windows2000/xp/vista/win7/win8;被控机同时还支持Linux;被控机可以是WII、PS2游戏机、虚拟机、安卓平板、PC电脑等只要是能支持实体键盘鼠标的设备。(部分游戏机只支持低速;全速不一定能支持)键盘支持全键盘、组合键操作。可以支持6+8个无冲突按键!8个控制按键:左/右Ctrl、左/右Shift、左/右Alt、左/右Windows6个除了以上8个控制按键外的普通按键暂不支持多媒体按键(如音量控制按键等)全速盒子:支持每秒300组命令(鼠标或/和按键命令)的输入速度msdk接口库使用说明书20160V3.1第3页共23页低速盒子:支持每秒100组命令(鼠标或/和按键命令)的输入速度提供VC/VB/C#/Delphi/易语言/按键精灵/TC语言例程每个产品有唯一序列号支持修改Vid、Pid(有可支持、不可支持两个版本,购买时请注意区分)3.单头盒子简介本盒子只使用一个USB接口,模拟USB键盘和鼠标,同时可以接收主控机的命令。一台电脑需要同时担当主控机和被控机。盒子从主控机接收数据,转换为键盘或鼠标格式的数据发给被控机。单头盒子使用时,主控机和被控机只能是同一台PC。盒子可以在虚拟机中使用。3.1.盒子功能、性能全速USBHID无驱接口,无需安装驱动、应用软件,即插即用。支持windows2000/xp/vista/win7/win8键盘支持全键盘、组合键操作。可以支持6+8个无冲突按键!8个控制按键:左/右Ctrl、左/右Shift、左/右Alt、左/右Windows6个除了以上8个控制按键外的普通按键暂不支持多媒体按键(如音量控制按键等)支持每秒300组命令(鼠标或/和按键命令)的输入速度提供VC/VB/C#/Delphi/易语言/按键精灵/TC语言例程每个产品有唯一序列号支持修改Vid、Pid(有可支持、不可支持两个版本,购买时请注意区分)4.重点说明盒子不能保存脚本。脚本必须在电脑上运行。可以在按键精灵里编写脚本或者用vc/vb/delphi/c#/e/Tc语言编程,脚本还在电脑上运行,给盒子发命令,盒子就能模拟出相应的按键或鼠标的动作。盒子是硬件模拟键盘鼠标,就和实际的键盘鼠标一样,不能支持后台窗口。msdk接口库使用说明书20160V3.1第4页共23页5.接口说明以下接口中的m_hdl都是指M_Open的返回值。5.1.通用接口说明接口函数名使用说明M_Open打开默认Vid、Pid的端口获取句柄,程序启动后只需打开一次端口就可以HANDLEWINAPIM_Open(intNbr)Nbr是端口号,无论是双头盒子还是单头盒子,都是从1开始,依次为2/3/4...,最大126一台电脑只插入一个盒子,则端口号始终是1;插入n个盒子,端口分别是1/2/3/4...n端口和盒子的对应关系,请看“主控机接多个盒子时,打开端口和盒子的对应关系”。返回非INVALID_HANDLE_VALUE即成功M_Open_VidPid打开指定Vid、Pid的单头盒子或者双头盒子的主控端获取句柄HANDLEWINAPIM_Open(intVid,intPid)Vid是厂商标识;Pid是产品标识单头盒子的默认VIDPID是(0xC216,0x0301)双头盒子主控端的默认VIDPID是(0xC216,0x0102)0x是表示十六进制。某些语言(如按键精灵、易语言)不支持无符号的十六进制数,请先将十六进制数转成十进制数后再调用该接口。使用该接口,一台电脑只能打开一个设备。如果一台电脑上插入2个或多个同样VID、PID的盒子,该接口只能打开一个。返回非INVALID_HANDLE_VALUE即成功以上两种打开方式,在一个程序脚本里,建议只使用其中一种。M_Close关闭端口;在程序退出前再关闭端口intWINAPIM_Close(HANDLEm_hdl)返回0:成功;!0:失败M_GetDevSn获取设备序列号M_GetDevSn(HANDLEm_hdl,DWORD*dwp_LenResponse,unsignedchar*ucp_Response)参数说明:dwp_LenResponse:设备序列号的长度,取值范围0~256。(单位:字节)ucp_Response:设备序列号buf(buf由调用该API的应用程序分配)msdk接口库使用说明书20160V3.1第5页共23页返回值说明:0x0001成功0xF0E0该设备没有序列号,或者该设备不支持获取序列号0xFFFF无效的句柄或参数。请检查USB设备是否已插好、该API函数是否支持该设备M_Delay延时指定时间time:单位msintWINAPIM_M_Delay(inttime);该接口实际上是直接调用系统的Sleep()程序可以不用该接口,直接用系统的Sleep()M_DelayRandom在指定的最小值和最大值之间延时随机时间intWINAPIM_DelayRandom(intMin_time,intMax_time);Min_time:最小延时时间;Max_time:最大延时时间(单位:ms)该接口实际上是直接调用系统的Sleep()程序可以不用该接口,直接用系统的Sleep()M_RandDomNbr在最小值、最大值之间取随机数intM_RandDomNbr(intMin_V,intMax_V);该接口实际上是直接调用系统的rand()程序可以不用该接口,直接用系统的rand()5.2.键盘接口说明以下的接口函数,返回值:0=成功;-1=失败接口函数名使用说明注意:以下4个接口中的HidKeyCode是USBHID的键盘码,不是Windows的标准键盘码。键盘码详见附录1。M_KeyPress单击(按下后立刻弹起)指定按键intWINAPIM_KeyPress(HANDLEm_hdl,intHidKeyCode,intNbr);HidKeyCode:键盘码(详见附录1)。Nbr:按下次数M_KeyDown按下指定按键不弹起,如果按下不弹起,可以和其他按键组成组合键intWINAPIM_KeyDown(HANDLEm_hdl,intHidKeyCode);HidKeyCode:键盘码(详见附录1)。M_KeyUp弹起指定按键intWINAPIM_KeyUp(HANDLEm_hdl,intHidKeyCode);HidKeyCode:键盘码(详见附录1)。M_KeyState读取按键状态;返回值:0=弹起状态;1:=按下状态使用该接口,不允许手工操作键盘,否则该接口返回值有可能不正确intWINAPIM_KeyState(HANDLEm_hdl,intHidKeyCode);HidKeyCode:键盘码(详见附录1)。注意:以下4个接口中的KeyCode是Windows的标准键盘码(可参考附录2的VK键值),易语言和按键精灵可以直接使用它们自带的按键码值(如:A键,按键码值是65)。msdk接口库使用说明书20160V3.1第6页共23页M_KeyPress2单击(按下后立刻弹起)指定按键intWINAPIM_KeyPress2(HANDLEm_hdl,intKeyCode,intNbr);KeyCode:Windows标准键盘码。Nbr:按下次数M_KeyDown2按下指定按键不弹起,如果按下不弹起,可以和其他按键组成组合键intWINAPIM_KeyDown2(HANDLEm_hdl,intKeyCode);KeyCode:Windows标准键盘码。M_KeyUp2弹起指定按键intWINAPIM_KeyUp2(HANDLEm_hdl,intKeyCode);KeyCode:Windows标准键盘码。M_KeyState2读取按键状态;返回值:0=弹起状态;1:=按下状态使用该接口,不允许手工操作键盘,否则该接口返回值有可能不正确intWINAPIM_KeyState2(HANDLEm_hdl,intKeyCode);KeyCode:Windows标准键盘码。M_ReleaseAllKey弹起所有按键。如果出现按键异常,也可以调用该接口恢复。intWINAPIM_ReleaseAllKey(HANDLEm_hdl);5.3.鼠标接口说明以下的接口函数,返回值:0=成功;-1=失败接口函数名使用说明M_LeftClick左键单击(按下后立刻弹起)intWINAPIM_LeftClick(HANDLEm_hdl,intNbr);Nbr:单击次数M_LeftDoubleClick左键双击intWINAPIM_LeftDoubleClick(HANDLEm_hdl,intNbr);Nbr:双击次数M_LeftDown按下左键不弹起intWINAPIM_LeftDown(HANDLEm_hdl);M_LeftUp弹起左键intWINAPIM_LeftUp(HANDLEm_hdl);M_RightClick右键单击(按下后立刻弹起)intWINAPIM_RightClick(HANDLEm_hdl,intNbr);Nbr:单击次数M_RightDown按下右键不弹起intWINAPIM_RightDown(HANDLEm_hdl);M_RightUp弹起右键intWINAPIM_RightUp(HANDLEm_hdl);M_MiddleClick中键单击(按下后立刻弹起)intWINAPIM_MiddleClick(HANDLEm_hdl,intNbr);Nbr:单击次数M_MiddleDown按下中键不弹起intWINAPIM_MiddleDown(HANDLEm_hdl);msdk接口库使用说明书20160V3.1第7页共23页M_MiddleUp弹起中键intWINAPIM_MiddleUp(HANDLEm_hdl);M_ReleaseAllMouse弹起鼠标的所有按键(包括左键、中键、右键)intWINAPIM_ReleaseAllMouse(HANDLEm_hdl);M_MouseWheel滚动鼠标滚轮intWINAPIM_MouseWheel(HANDLEm_hdl,intNbr);Nbr:滚动量,为正,向上滚动;为负,向下滚动;M_ResetMousePos将鼠标移动到原点(0,0)intWINAPIM_ResetMousePos(HANDLEm_hdl);在出现移动出现异常时,可以用该函数将鼠标复位M_MoveR从当前位置相对移动鼠标intWINAPIM_MoveR(HANDLEm_hdl,intx,inty);x:x方向(横轴)的距离(正:向右;负值:向左);y:y方向(纵轴)的距离(正:向下;负值:向上)如果只是本机使用,请使用下面的M_MoveR2M_MoveTo移动鼠标到指定坐标使
本文标题:msdk使用说明书-双头盒子
链接地址:https://www.777doc.com/doc-4781137 .html