易语言实现截图或右键二维码识别的代码
2018-11-25 04:00
846 查看
DLL命令表
.版本 2 .DLL命令 DecodePictureFile, 整数型, "PsyQrDcd", "DecodePictureFile" .参数 strFilePath, 文本型 .DLL命令 DecodePictureFileRect, 整数型, "PsyQrDcd", "DecodePictureFileRect" .参数 strFilePath, 文本型 .参数 lngLeftX, 整数型 .参数 lngTopY, 整数型 .参数 lngRightX, 整数型 .参数 lngBottomY, 整数型 .DLL命令 DecodeGrayScaleArray, 整数型, "PsyQrDcd", "DecodeGrayScaleArray" .参数 byData, 字节型, 传址 .参数 lngWidth, 整数型 .参数 lngHeight, 整数型 .DLL命令 DecodeBinaryArray, 整数型, "PsyQrDcd", "DecodeBinaryArray" .参数 byData, 字节型, 传址 .参数 lngWidth, 整数型 .参数 lngHeight, 整数型 .DLL命令 GetDecodeDataString, 文本型, "PsyQrDcd", "GetDecodeDataString" .参数 lngIndex, 整数型 .DLL命令 GetDecodeDataByteArray, 整数型, "PsyQrDcd", "GetDecodeDataByteArray" .参数 lngIndex, 整数型 .DLL命令 GetDecodeVersion, 整数型, "PsyQrDcd", "GetDecodeVersion" .参数 lngIndex, 整数型 .DLL命令 GetDecodeLevel, 整数型, "PsyQrDcd", "GetDecodeLevel" .参数 lngIndex, 整数型 .DLL命令 GetDecodeMaskingNo, 整数型, "PsyQrDcd", "GetDecodeMaskingNo" .参数 lngIndex, 整数型 .DLL命令 GetConcatenationInfo, 整数型, "PsyQrDcd", "GetConcatenationInfo" .参数 lngIndex, 整数型 .参数 lngSeqNo, 整数型, 传址 .参数 byCheckDigit, 字节型, 传址 .DLL命令 GetSymbolePosition, 整数型, "PsyQrDcd", "GetSymbolePosition" .参数 lngIndex, 整数型 .参数 lngPosition, 整数型, 传址 .DLL命令 SetDecodeSymbolCount, , "PsyQrDcd", "SetDecodeSymbolCount" .参数 lngCount, 整数型 .DLL命令 SetDecodeEffectLevel, , "PsyQrDcd", "SetDecodeEffectLevel" .参数 lngLevel, 整数型 .DLL命令 SetBrightnessBorder, , "PsyQrDcd", "SetBrightnessBorder" .参数 byBorder, 字节型 .DLL命令 SetMinimumModuleSize, , "PsyQrDcd", "SetMinimumModuleSize" .参数 bySize, 字节型 .DLL命令 FreeAllocateMemory, , "PsyQrDcd", "FreeAllocateMemory" .DLL命令 API_MultiByteToWideChar_utf8, 整数型, , "MultiByteToWideChar" .参数 CodePage, 整数型 .参数 dwFlags, 整数型 .参数 lpMultiByteStr, 字节集 .参数 cchMultiByte, 整数型 .参数 lpWideCharStr, 字节集 .参数 cchWideChar, 整数型 .DLL命令 API_WideCharToMultiByte_utf8, 整数型, "kernel32", "WideCharToMultiByte", , 将通配符映像为多字节 .参数 CodePage, 整数型 .参数 dwFlags, 整数型 .参数 lpWideCharStr, 字节集 .参数 cchWideChar, 整数型 .参数 lpMultiByteStr, 字节集 .参数 cchMultiByte, 整数型 .参数 lpDefaultChar, 整数型 .参数 lpUsedDefaultChar, 整数型 .DLL命令 API_WideCharToMultiByte, 整数型, "kernel32", "WideCharToMultiByte", , 将通配符映像为多字节 .参数 CodePage, 整数型 .参数 dwFlags, 整数型 .参数 lpWideCharStr, 字节集 .参数 cchWideChar, 整数型 .参数 lpMultiByteStr, 文本型 .参数 cchMultiByte, 整数型 .参数 lpDefaultChar, 文本型 .参数 lpUsedDefaultChar, 整数型 .DLL命令 CreateWaitableTimerA, 整数型, , "CreateWaitableTimerA", 公开, CreateWaitableTimerA 程序延时 .参数 lpTimerAttributes, 整数型 .参数 bManualReset, 逻辑型 .参数 lpTimerName, 整数型 .DLL命令 SetWaitableTimer, 整数型, , "SetWaitableTimer", 公开, SetWaitableTimer .参数 hTimer, 整数型 .参数 pDueTime, 程序延时 .参数 lPeriod, 整数型 .参数 pfnCompletionRoutine, 整数型 .参数 lpArgToCompletionRoutine, 整数型 .参数 fResume, 逻辑型 .DLL命令 MsgWaitForMultipleObjects, 整数型, , "MsgWaitForMultipleObjects", 公开, MsgWaitForMultipleObjects .参数 nCount, 整数型 .参数 pHandles, 整数型, 传址 .参数 fWaitAll, 逻辑型 .参数 dwMilliseconds, 整数型 .参数 dwWakeMask, 整数型 .DLL命令 CloseHandle, 逻辑型, "kernel32", "CloseHandle", 公开, CloseHandle关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError .参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄; .DLL命令 GetInputState, 整数型, "user32", "GetInputState", 公开, 用法,如果真(我的处理事件()≠0),处理事件() 比系统自带的"处理事件"比3倍以上
自定义数据类型
.版本 2 .数据类型 程序延时 .成员 成员_时间, 长整数型, , , 占用8个字节
全局变量表
.版本 2 .支持库 BmpOperate .全局变量 a, 字节集 .全局变量 x .全局变量 y .全局变量 s, 逻辑型 .全局变量 动画物体1 .全局变量 动画物体2 .全局变量 w, 位图 .全局变量 w1, 位图 .全局变量 解码结果, 文本型
常量数据表
.版本 2 .常量 QRD_ERROR_SYMBLE_NOT_FOUND, "0" .常量 QRD_ERROR_FILE_NOT_FOUND, "-1" .常量 QRD_ERROR_READ_FAULT, "-2" .常量 QRD_ERROR_BAD_FORMAT, "-3" .常量 QRD_ERROR_SHARING_VIOLATION, "-4" .常量 QRD_ERROR_NOT_ENOUGH_MEMORY, "-5" .常量 常量1 .常量 常量2, "“"C:\Users\Administrator\Desktop\二维码读取\qrcode.exe" "%1"”"
截图程序集的代码
.版本 2 .支持库 iext2 .支持库 BmpOperate .支持库 exui .程序集 截图窗口程序集 .子程序 _截图窗口_创建完毕 截图动画物体.趋向色 = #灰色 截图动画物体.趋向程度 = 50 动画物体1 = 背景动画框.创建物体 (截图动画物体, 0, 0, 真, ) 动画物体2 = 背景动画框.创建物体 (动画物体2, 0, 0, 真, ) a = 快照 (, , ) 背景动画框.置图片 (动画物体1, a, ) w.载入数据 (a) 截图窗口.移动 (0, 0, 取屏幕宽度 (), 取屏幕高度 ()) 背景动画框.移动 (0, 0, 截图窗口.宽度, 截图窗口.高度) 截图窗口.可视 = 真 .子程序 _背景动画框_鼠标左键被按下, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 s = 真 x = 横向位置 y = 纵向位置 .子程序 _背景动画框_鼠标左键被放开, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 s = 假 .如果真 (写到文件 (取运行目录 () + “\2wm.bmp”, w1.取位图数据 ())) 截图窗口.可视 = 假 解码结果 = 解码 (取运行目录 () + “\2wm.bmp”) _启动窗口.主窗口.可视EX = 真 _启动窗口.激活 () 显示信息 (解码结果) .如果真结束 销毁 () .子程序 _背景动画框_鼠标位置被移动, 逻辑型 .参数 横向位置, 整数型 .参数 纵向位置, 整数型 .参数 功能键状态, 整数型 .局部变量 x1 .局部变量 y1 .局部变量 c, 整数型 .如果真 (s) x1 = 横向位置 - x y1 = 纵向位置 - y .如果真 (x1 < 1) x1 = 0 .如果真结束 .如果真 (y1 < 1) y1 = 0 .如果真结束 w1.创建 (x1, y1, 24, #白色) w.复制到 (x, y, x1, y1, w1, 0, 0, ) .计次循环首 (x1, c) w1.置某点颜色 (c, 0, #红色) w1.置某点颜色 (c, y1 - 1, #红色) .计次循环尾 () .计次循环首 (y1, c) w1.置某点颜色 (0, c, #红色) w1.置某点颜色 (x1 - 1, c, #红色) .计次循环尾 () 背景动画框.置物体位置 (动画物体2, x, y, ) 背景动画框.置图片 (动画物体2, w1.取位图数据 (), ) .如果真结束
解码程序集的代码
.版本 2 .支持库 spec .程序集 解码程序集 .程序集变量 lngRectLeft, 整数型 .程序集变量 lngRectTop, 整数型 .程序集变量 lngRectRight, 整数型 .程序集变量 lngRectBottom, 整数型 .程序集变量 blnEnableSetRect, 逻辑型 .子程序 解码, 文本型 .参数 strFilePath, 文本型 .局部变量 intOldPointer, 整数型 .局部变量 lngResult, 整数型 .局部变量 strResult, 文本型 .局部变量 i, 整数型 .局部变量 lngCount, 整数型 .局部变量 lngSeqNo, 整数型 .局部变量 byCheckDigit, 字节型 .局部变量 lngPosition, 整数型, , "8" .如果 (blnEnableSetRect) lngResult = DecodePictureFileRect (strFilePath, lngRectLeft, lngRectTop, lngRectRight, lngRectBottom) .否则 lngResult = DecodePictureFile (strFilePath) .如果结束 .如果 (lngResult ≥ 1) .变量循环首 (0, lngResult - 1, 1, i) strResult = strResult + “――――――――――――――――――――――” + #换行符 strResult = strResult + “已解码数据 ” + 到文本 (i + 1) strResult = strResult + “ [模型版本: ” + 到文本 (GetDecodeVersion (i)) strResult = strResult + “, 等级: ” .判断开始 (GetDecodeLevel (i) = 0) strResult = strResult + “L(7%)” .判断 (GetDecodeLevel (i) = 1) strResult = strResult + “M(15%)” .判断 (GetDecodeLevel (i) = 2) strResult = strResult + “Q(25%)” .判断 (GetDecodeLevel (i) = 3) strResult = strResult + “H(30%)” .默认 .判断结束 lngCount = GetConcatenationInfo (i, lngSeqNo, byCheckDigit) .如果真 (lngCount > 0) strResult = strResult + “, 综合:” + 到文本 (lngSeqNo + 1) + “/” + 到文本 (lngCount) strResult = strResult + “(CD” + 取十六进制文本 (byCheckDigit \ 16) + 取十六进制文本 (byCheckDigit % 16) + “H)” .如果真结束 strResult = strResult + “]” + #换行符 strResult = strResult + “――――――――――――――――――――――” + #换行符 调试输出 (UTF8_转_ANSI (到字节集 (GetDecodeDataString (i)))) strResult = strResult + UTF8_转_ANSI (到字节集 (GetDecodeDataString (i))) + #换行符 + #换行符 lngResult = GetSymbolePosition (i, lngPosition [1]) strResult = strResult + “符号位置:” + “(” + 到文本 (lngPosition [1]) + “, ” + 到文本 (lngPosition [2]) + “)-” + “(” + 到文本 (lngPosition [3]) + “, ” + 到文本 (lngPosition [4]) + “)-” + “(” + 到文本 (lngPosition [5]) + “, ” + 到文本 (lngPosition [6]) + “)-” + “(” + 到文本 (lngPosition [7]) + “, ” + 到文本 (lngPosition [8]) + “)” strResult = strResult + #换行符 + #换行符 .变量循环尾 () FreeAllocateMemory () .否则 .判断开始 (lngResult = #QRD_ERROR_SYMBLE_NOT_FOUND) strResult = “未找到 QR 代码符号。” .判断 (lngResult = #QRD_ERROR_FILE_NOT_FOUND) strResult = “文件未找到!” .判断 (lngResult = #QRD_ERROR_READ_FAULT) strResult = “读取文件时发生错误。” .判断 (lngResult = #QRD_ERROR_BAD_FORMAT) strResult = “无法读取此格式文件。” .判断 (lngResult = #QRD_ERROR_SHARING_VIOLATION) strResult = “共享冲突,无法读取文件。” .判断 (lngResult = #QRD_ERROR_NOT_ENOUGH_MEMORY) strResult = “内存不足。” .默认 .判断结束 .如果结束 调试输出 (strResult) 返回 (strResult) .子程序 UTF8_转_ANSI, 文本型, 公开 .参数 utf8字节集, 字节集 返回 (Unicode_转_ANSI (UTF8_转_Unicode (utf8字节集))) .子程序 UTF8_转_Unicode, 字节集 .参数 utf8字节集, 字节集 .局部变量 len, 整数型, , , 单位: Word .局部变量 Unicode字节集, 字节集 .局部变量 ll ll = 取字节集长度 (utf8字节集) len = API_MultiByteToWideChar_utf8 (65001, 0, utf8字节集, ll, { }, 0) Unicode字节集 = 取空白字节集 (len × 2) API_MultiByteToWideChar_utf8 (65001, 0, utf8字节集, ll, Unicode字节集, len × 2) 返回 (Unicode字节集) .子程序 Unicode_转_ANSI, 文本型 .参数 Unicode字节集, 字节集 .局部变量 ansi_len, 整数型, , , 单位: Word .局部变量 unicode_len .局部变量 ansi, 文本型 unicode_len = 取字节集长度 (Unicode字节集) ÷ 2 ansi_len = API_WideCharToMultiByte (936, 0, Unicode字节集, unicode_len, ansi, 0, “”, 0) ansi = 取空白文本 (ansi_len) API_WideCharToMultiByte (936, 0, Unicode字节集, unicode_len, ansi, ansi_len, “”, 0) 返回 (ansi) .子程序 程序延时, 逻辑型, , 不占用cpu,窗口不卡死,不影响其它代码执行 .参数 参_延时间隔, 整数型, 可空, 1000毫秒 = 1秒 留空为无限等待 .参数 参_延时单位, 整数型, 可空, 默认为毫秒 0=毫秒 1=秒 2=分钟 3=小时 .局部变量 局_时间句柄, 整数型 .局部变量 局_时间, 程序延时 .判断开始 (参_延时单位 = 0 且 是否为空 (参_延时间隔)) 参_延时间隔 = 5000 × 60 × 60 参_延时单位 = 5000 × 60 × 60 .判断 (参_延时单位 = 0) 参_延时单位 = 1 .判断 (参_延时单位 = 1) 参_延时单位 = 1000 .判断 (参_延时单位 = 2) 参_延时单位 = 1000 × 60 .判断 (参_延时单位 = 3) 参_延时单位 = 1000 × 60 × 60 .默认 .判断结束 局_时间.成员_时间 = -10 × 参_延时间隔 × 1000 × 参_延时单位 局_时间句柄 = CreateWaitableTimerA (0, 假, 0) SetWaitableTimer (局_时间句柄, 局_时间, 0, 0, 0, 假) .判断循环首 (MsgWaitForMultipleObjects (1, 局_时间句柄, 假, -1, 255) ≠ 0) 系统处理事件 () .判断循环尾 () CloseHandle (局_时间句柄) 返回 (真) .子程序 系统处理事件 .如果真 (GetInputState () ≠ 0) 处理事件 () .如果真结束
二维码识别的代码
.版本 2 .支持库 exui .支持库 iext2 .程序集 启动窗口程序集 .程序集变量 命令行, 文本型, , "0" .子程序 __启动窗口_创建完毕 .局部变量 path, 文本型 path = 取运行目录 () + “\PsyQrDcd.dll” .如果真 (文件是否存在 (path) = 假) 写到文件 (path, #PsyQrDcd) .如果真结束 取命令行 (命令行) .如果真 (取数组成员数 (命令行) > 0) 解码结果 = 解码 (命令行 [1]) 显示信息 (解码结果) .如果真结束 初始化注册右键按钮 () .子程序 _截图识别按钮_左键单击 主窗口.可视EX = 假 .如果真 (是否已创建 (截图窗口) = 假) 载入 (截图窗口, , 假) .如果真结束 截图窗口.背景动画框.置物体位置 (动画物体2, -2000, -2000, ) .子程序 _注册右键按钮_左键单击 .如果 (注册项是否存在 (#根类, “*\shell\QRCode\command\”)) 删除注册项 (#根类, “*\shell\QRCode\command”) 删除注册项 (#根类, “*\shell\QRCode”) .否则 .如果 (写注册项 (#根类, “*\shell\QRCode\”, “识别二维码”) 且 写注册项 (#根类, “*\shell\QRCode\command\”, 取运行目录 () + “\” + 取执行文件名 () + “ %1”)) 显示信息 (“注册成功”) .否则 显示信息 (“注册失败”) 删除注册项 (#根类, “*\shell\QRCode\command”) 删除注册项 (#根类, “*\shell\QRCode”) .如果结束 .如果结束 初始化注册右键按钮 () .子程序 显示信息 .参数 信息, 文本型 .参数 是否复制, 逻辑型, 可空 信息框EX (主窗口.图标, “解码结果 - 已复制到剪辑版”, , 信息, , { “确认” }, 0, 取窗口句柄 (), , , 5000, , ) .如果真 (是否复制) 置剪辑板文本 (解码结果) .如果真结束 .子程序 __启动窗口_将被销毁 主窗口.销毁 () .子程序 初始化注册右键按钮 .如果 (注册项是否存在 (#根类, “*\shell\QRCode\command\”)) 注册右键按钮.标题 = “注销右键” .否则 注册右键按钮.标题 = “注册右键” .如果结束
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
您可能感兴趣的文章:
- 易语言仿按键精灵录制键盘鼠标操作的代码
- 易语言实现YY批量自动加好友的代码
- 易语言通过get的方式多线程刷微视播放量的代码
- 易语言用夜神模拟器实现抖音自动点赞和评论的代码
- 易语言通过路径来判断是不是在压缩包内运行的代码
- 易语言解析获得无水印下载地址的代码
- 易语言NTAPI进程操纵的代码
- 易语言通过注册表将易文件关联修复的源码
- 易语言注册机生成永久或限时注册码的写法
- 易语言制作一款唯美的cookie分析工具的代码
- 易语言通过百度错误页面获取北京时间的代码
- 易语言多线程多任务下载器的代码
- 易语言调用墨迹天气实现自动定位获取天气情况的代码
- 易语言通过枚举密码进行破解rar压缩包文件的代码
- 易语言调用百度图片识别实现的图片转表格的代码
相关文章推荐
- C++中基本数据类型字节数及取值范围,下面有实现查看代码和运行截图
- “约瑟夫问题”实现代码加运行截图(ADT小组)
- 获取和保存当前屏幕的截图 实现的C++代码如下
- 关于quartz cron表达式饭解析验证输出实现部分截图代码
- JAVA功能代码《6》----用Java实现屏幕截图
- 为jQuery.Treeview添加右键菜单的实现代码
- php中CutyCapt实现网页截图保存代码
- 3种不同的ContextMenu右键菜单实现代码
- VC++基于Dx实现的截图程序示例代码
- android中 代码实现截图功能(静态+动态视频)
- 【转】Android截图代码实现
- SkylineGlobe 6.6 三维地图上实现自定义右键菜单示例代码
- Android截图代码实现
- Flex 屏幕截图实现代码
- chrome扩展学习 右键菜单实现代码
- Javascript实现截图功能(代码)--转载
- 易语言调用墨迹天气实现自动定位获取天气情况的代码
- 用代码实现截图
- IFIX实现右键菜单的代码
- (转)Android截图代码实现(DDMS使用部分)