| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- # -*- coding: utf-8 -*-
- import platform
- from ctypes import *
- import os
- # 加载DLL
- script_dir = os.path.dirname(os.path.abspath(__file__))
- if platform.architecture()[0] == "64bit":
- dll_path = os.path.join(script_dir, "gbild64.dll")
- else:
- dll_path = os.path.join(script_dir, "gbild32.dll")
- dll = windll.LoadLibrary(dll_path)
- # 设置接口返回值类型
- dll.getmodel.restype = c_char_p
- dll.getserialnumber.restype = c_char_p
- dll.getproductiondate.restype = c_char_p
- dll.getfirmwareversion.restype = c_char_p
- dll.getclientscreenresolution.restype = c_char_p
- dll.readstring.restype = c_char_p
- dll.encryptstring.restype = c_char_p
- dll.decryptstring.restype = c_char_p
- dll.getproductname.restype = c_char_p
- dll.sdktype.restype = c_char_p
- dll.sdkversion.restype = c_char_p
- # ================ 设备操作
- # 打开设备(根据设备序号)
- def opendevice(index=0):
- return dll.opendevice(index)
- # 打开设备(根据设备ID)
- def opendevicebyid(vid,pid):
- return dll.opendevicebyid(vid,pid)
- # 打开设备(根据设备路径)
- def opendevicebypath(path):
- return dll.opendevicebypath(bytes(path,"utf-8"))
- # 检查设备是否连接
- def isconnected():
- return dll.isconnected()
- # 关闭设备
- def closedevice():
- return dll.closedevice()
- # 复位设备
- def resetdevice():
- return dll.resetdevice()
- # ================ 设备信息
- # 获取设备型号
- def getmodel():
- return dll.getmodel().decode("utf-8")
- # 获取设备序列号
- def getserialnumber():
- return dll.getserialnumber().decode("utf-8")
- # 获取设备生产日期
- def getproductiondate():
- return dll.getproductiondate().decode("utf-8")
- # 获取设备固件版本号
- def getfirmwareversion():
- return dll.getfirmwareversion().decode("utf-8")
- # ================ 键盘操作
- # 按下键
- def presskeybyname(keyn):
- return dll.presskeybyname(bytes(keyn,"utf-8"))
- def presskeybyvalue(keyv):
- return dll.presskeybyvalue(keyv)
- # 释放键
- def releasekeybyname(keyn):
- return dll.releasekeybyname(bytes(keyn,"utf-8"))
- def releasekeybyvalue(keyv):
- return dll.releasekeybyvalue(keyv)
- # 按下并释放键
- def pressandreleasekeybyname(keyn):
- return dll.pressandreleasekeybyname(bytes(keyn,"utf-8"))
- def pressandreleasekeybyvalue(keyv):
- return dll.pressandreleasekeybyvalue(keyv)
- # 判断键盘按键状态
- def iskeypressedbyname(keyn):
- return dll.iskeypressedbyname(bytes(keyn,"utf-8"))
- def iskeypressedbyvalue(keyv):
- return dll.iskeypressedbyvalue(keyv)
- # 释放所有键盘按键
- def releaseallkey():
- return dll.releaseallkey()
- # 组合按键
- def combinationkey(keys):
- return dll.combinationkey(bytes(keys,"utf-8"))
- # 输入字符串
- def inputstring(str):
- return dll.inputstring(bytes(str,"utf-8"))
- # 获取大写锁定状态
- def getcapslock():
- return dll.getcapslock()
- # 获取数字键盘锁定状态
- def getnumlock():
- return dll.getnumlock()
- # 设置是否区分大小写
- def setcasesensitive(cs):
- return dll.setcasesensitive(cs)
- # 设置按键延时
- def setpresskeydelay(maxd,mind):
- return dll.setpresskeydelay(maxd,mind)
- # 设置输入字符串间隔时间
- def setinputstringintervaltime(maxd,mind):
- return dll.setinputstringintervaltime(maxd,mind)
- # 设置中文输入模式
- def setchineseinputmode(mode):
- return dll.setchineseinputmode(mode)
- # ================ 鼠标操作
- # 按下鼠标键
- def pressmousebutton(mbtn):
- return dll.pressmousebutton(mbtn)
- # 释放鼠标键
- def releasemousebutton(mbtn):
- return dll.releasemousebutton(mbtn)
- # 按下并释放鼠标键
- def pressandreleasemousebutton(mbtn):
- return dll.pressandreleasemousebutton(mbtn)
- # 判断鼠标按键状态
- def ismousebuttonpressed(mbtn):
- return dll.ismousebuttonpressed(mbtn)
- # 释放所有鼠标按键
- def releaseallmousebutton():
- return dll.releaseallmousebutton()
- # 相对移动鼠标
- def movemouserelative(x,y):
- return dll.movemouserelative(x,y)
- # 移动鼠标到指定坐标
- def movemouseto(x,y):
- return dll.movemouseto(x,y)
- # 获取鼠标当前位置
- def getmousex():
- return dll.getmousex()
- def getmousey():
- return dll.getmousey()
- # 移动鼠标滚轮
- def movemousewheel(z):
- return dll.movemousewheel(z)
- # 设置鼠标按键延时
- def setpressmousebuttondelay(maxd,mind):
- return dll.setpressmousebuttondelay(maxd,mind)
- # 设置鼠标移动延时
- def setmousemovementdelay(maxd,mind):
- return dll.setmousemovementdelay(maxd,mind)
- # 设置鼠标移动速度
- def setmousemovementspeed(speedvalue):
- return dll.setmousemovementspeed(speedvalue)
- # 设置鼠标移动模式
- def setmousemovementmode(modevalue):
- return dll.setmousemovementmode(modevalue)
- # ================ 双机设备接口
- # 设置鼠标当前位置(针对不支持绝对值的鼠标)
- def setmouseposition(x,y):
- return dll.setmouseposition(x,y)
- # 设置鼠标绝对位置(针对支持绝对值的鼠标)
- def setmouseabsoluteposition(x,y):
- return dll.setmouseabsoluteposition(x,y)
- # 设置鼠标逻辑位置(不移动鼠标,只更新内部当前坐标)
- def setmouselogicalposition(x,y):
- return dll.setmouselogicalposition(x,y)
- # 相对移动鼠标(只移动鼠标,不更新内部当前坐标)
- def movemouserelative_ncc(x,y):
- return dll.movemouserelative_ncc(x,y)
- # 设置被控端屏幕分辨率
- def setclientscreenresolution(width,height):
- return dll.setclientscreenresolution(width,height)
- # 获取被控端屏幕分辨率
- def getclientscreenresolution():
- return dll.getclientscreenresolution().decode("utf-8")
- # 选择被控端(对于APV系列的一控多模式,指定键盘鼠标操作对应的设备)
- def selectsubdevice(addr):
- return dll.selectsubdevice(addr)
- # 修改被控端设备ID devtype: 0 主控端,1 被控端键盘(U2),2 被控端鼠标(U2),3 被控端复合键鼠(U1)
- def setslavedeviceid(vid,pid,devtype):
- return dll.setslavedeviceid(vid,pid,devtype)
- # ================ 加密狗操作
- # 初始化加密狗
- def initializedongle():
- return dll.initializedongle()
- # 设置读密码
- def setreadpassword(writepwd,newpwd):
- return dll.setreadpassword(bytes(writepwd,"utf-8"),bytes(newpwd,"utf-8"))
- # 设置写密码
- def setwritepassword(oldpwd,newpwd):
- return dll.setwritepassword(bytes(oldpwd,"utf-8"),bytes(newpwd,"utf-8"))
- # 从设备读字符串
- def readstring(readpwd,addr,count):
- return dll.readstring(bytes(readpwd,"utf-8"),addr,count).decode("utf-8", errors="ignore")
- # 将字符串写入设备
- def writestring(writepwd,str,addr):
- return dll.writestring(bytes(writepwd,"utf-8"),bytes(str,"utf-8"),addr)
- # 设置密钥
- def setencryptionkey(writepwd,cipher):
- return dll.setencryptionkey(bytes(writepwd,"utf-8"),bytes(cipher,"utf-8"))
- # 加密字符串
- def encryptstring(str):
- return dll.encryptstring(bytes(str,"utf-8")).decode("utf-8")
- # 解密字符串
- def decryptstring(str):
- return dll.decryptstring(bytes(str,"utf-8")).decode("utf-8")
- # ================ 电源控制接口
- # 按下电源按钮
- def presspowerbutton():
- return dll.presspowerbutton()
- # 释放电源按钮
- def releasepowerbutton():
- return dll.releasepowerbutton()
- # 按下并释放电源按钮
- def pressandreleasepowerbutton():
- return dll.pressandreleasepowerbutton()
- # 获取电源工作状态
- def getpowerstatus():
- return dll.getpowerstatus()
- # ================ 设备定义接口
- # 修改设备速度
- def setspeed(speed):
- return dll.setspeed()
- # 修改设备ID
- def setdeviceid(vid,pid):
- return dll.setdeviceid(vid,pid)
- # 恢复设备默认ID
- def restoredeviceid():
- return dll.restoredeviceid()
- # 获取当前设备VID
- def getvid():
- return dll.getvid()
- # 获取当前设备PID
- def getpid():
- return dll.getpid()
- # 设置产品名称
- def setproductname(name):
- return dll.setproductname(bytes(name,"gbk"))
- # 获取产品名称
- def getproductname():
- return dll.getproductname().decode("gbk")
- # ================ 其他操作
- # 获取当前SDK库类型
- def sdktype():
- return dll.sdktype().decode("utf-8")
- # 获取当前SDK库版本
- def sdkversion():
- return dll.sdkversion().decode("utf-8")
|