易语言如何实现截图

这篇文章主要为大家展示了“易语言如何实现截图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“易语言如何实现截图”这篇文章吧。

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\”))
注册右键按钮.标题=“注销右键”
.否则
注册右键按钮.标题=“注册右键”
.如果结束

运行结果:

易语言如何实现截图

以上是“易语言如何实现截图”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-06-13 23:20:58
收藏
分享
海报
0 条评论
166
上一篇:易语言如何判断多线程验证代理是否有效 下一篇:C语言中如何实现学生成绩管理系统
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码