易语言如何实现截图
这篇文章主要为大家展示了“易语言如何实现截图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“易语言如何实现截图”这篇文章吧。
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\”))
注册右键按钮.标题=“注销右键”
.否则
注册右键按钮.标题=“注册右键”
.如果结束运行结果:
以上是“易语言如何实现截图”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
易语言中怎么实现位取反操作
这篇文章给大家介绍易语言中怎么实现位取反操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、易语言新建一个...
-
如何在易语言中操作数据库
本篇文章给大家分享的是有关如何在易语言中操作数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话...
-
易语言中怎么实现进程检测
易语言中怎么实现进程检测,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问...
-
易语言如何判断多线程验证代理是否有效
小编给大家分享一下易语言如何判断多线程验证代理是否有效,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完...
-
易语言中怎么实现取反
本篇文章为大家展示了易语言中怎么实现取反,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1...
-
易语言中如何选择夹子夹管理
这期内容当中小编将会给大家带来有关易语言中如何选择夹子夹管理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可...
-
如何使用易语言找字和找图
这篇文章将为大家详细讲解有关如何使用易语言找字和找图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关...
-
易语言中怎么使用块EDgame2d模板
本篇文章为大家展示了易语言中怎么使用块EDgame2d模板,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希...
-
易语言中怎么在指定位置显示弹出式菜单
易语言中怎么在指定位置显示弹出式菜单,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
-
易语言中怎么保持标题条激活状态颜色总是明亮的
易语言中怎么保持标题条激活状态颜色总是明亮的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面...
