易语言如何实现截图
作者
这篇文章主要为大家展示了“易语言如何实现截图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“易语言如何实现截图”这篇文章吧。
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\”)) 注册右键按钮.标题=“注销右键” .否则 注册右键按钮.标题=“注册右键” .如果结束
运行结果:
以上是“易语言如何实现截图”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
目录
推荐阅读
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~