为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言模块源码 正文

易语言高级截图-无视遮拦源码

三叶资源网 2019-08-13 12:30:08 易语言模块源码 3550 ℃ 5 评论
.版本 2

.子程序 窗口截图, 字节集, 公开, 截取指定窗口的24位图,可截取窗口中指定区域,最小化窗口或不可见窗口无法截取位图
.参数 窗口句柄, 整数型, , 欲截取窗口图片的窗口句柄
.参数 左边, 整数型, 可空, 默认为0 在窗口中截取图片的左边(相对于窗口的左边偏移坐标)
.参数 顶边, 整数型, 可空, 默认为0 在窗口中截取图片的顶边(相对于窗口的顶边偏移坐标)
.参数 宽度, 整数型, 可空, 在窗口中截取图片的宽度(若为空,则为窗口宽度或客户区宽度)
.参数 高度, 整数型, 可空, 在窗口中截取图片的高度(若为空,则为窗口高度或客户区高度)
.参数 非客户区, 逻辑型, 可空, 默认为假:仅截取客户区内范围图片,不含标题边框  真:截取窗口范围图片
.局部变量 矩形区域, 矩形坐标
.局部变量 窗口大小, 矩形范围
.局部变量 窗口位置, 坐标型
.局部变量 新左边
.局部变量 新顶边
.局部变量 新宽度
.局部变量 新高度
.局部变量 屏幕设备上下文句柄, 整数型
.局部变量 内存设备上下文句柄, 整数型
.局部变量 位图句柄, 整数型
.局部变量 旧位图句柄, 整数型
.局部变量 位图, BITMAP
.局部变量 位图像素点阵, 字节集
.局部变量 位图文件头, BITMAPFILEHEADER
.局部变量 位图文件头字节集, 字节集
.局部变量 位图信息, BITMAPINFO
.局部变量 位图信息字节集, 字节集
.局部变量 hmemdc, 整数型
.局部变量 hbitmap, 整数型
.局部变量 holdbitmap, 整数型

_窗口取外边框 (窗口句柄, 矩形区域)
屏幕设备上下文句柄 = 取设备场景_ (0)
内存设备上下文句柄 = 创建内存场景_ (屏幕设备上下文句柄)
位图句柄 = 创建设备场景位图_ (屏幕设备上下文句柄, 矩形区域.矩形右边 - 矩形区域.矩形左边, 矩形区域.矩形底边 - 矩形区域.矩形顶边)
旧位图句柄 = 选入设备场景_ (内存设备上下文句柄, 位图句柄)
.如果真 (取反 (PrintWindow (窗口句柄, 内存设备上下文句柄, 0)))
    选入设备场景_ (内存设备上下文句柄, 旧位图句柄)
    删除对象_ (位图句柄)
    删除设备场景_ (内存设备上下文句柄)
    释放设备场景_ (0, 屏幕设备上下文句柄)
    输出调试文本 (“抓取窗口位图失败”)
    返回 ({  })
.如果真结束
.如果 (非客户区)
    新左边 = 左边
    新顶边 = 顶边
    新宽度 = 宽度
    新高度 = 高度
.否则
    连续赋值 (0, 窗口大小.矩形宽度, 窗口大小.矩形高度, 窗口位置.x, 窗口位置.y)
    _取窗口大小 (窗口句柄, 窗口大小)
    _取窗口区域位置 (窗口句柄, 窗口位置)
    新左边 = 窗口位置.x - 矩形区域.矩形左边 + 左边
    新顶边 = 窗口位置.y - 矩形区域.矩形顶边 + 顶边
    新宽度 = 选择 (宽度 < 1, 窗口大小.矩形宽度, 宽度)
    新高度 = 选择 (高度 < 1, 窗口大小.矩形高度, 高度)
.如果结束
hmemdc = 创建内存场景_ (屏幕设备上下文句柄)
hbitmap = 创建设备场景位图_ (屏幕设备上下文句柄, 新宽度, 新高度)
holdbitmap = 选入设备场景_ (hmemdc, hbitmap)
复制场景位图_ (hmemdc, 0, 0, 新宽度, 新高度, 内存设备上下文句柄, 新左边, 新顶边, 13369376)
选入设备场景_ (内存设备上下文句柄, 旧位图句柄)
删除对象_ (位图句柄)
删除设备场景_ (内存设备上下文句柄)
内存设备上下文句柄 = hmemdc
位图句柄 = hbitmap
旧位图句柄 = holdbitmap
GetObjectA (位图句柄, 5 × 4 + 2 + 2, 位图)
位图信息.BITMAPINFOHEADER.biSize = 4 × 11
GetDIBits_BimapInfo (内存设备上下文句柄, 位图句柄, 0, 0, 0, 位图信息, 0)
位图像素点阵 = 取空白字节集 (位图信息.BITMAPINFOHEADER.biSizeImage)
位图信息.BITMAPINFOHEADER.biCompression = 0
GetDIBits (内存设备上下文句柄, 位图句柄, 0, 位图.bmHeight, 位图像素点阵, 位图信息, 0)
' 构造位图信息
位图信息字节集 = 取空白字节集 (位图信息.BITMAPINFOHEADER.biSize)
CopyMemory_BITMAPINFO (位图信息字节集, 位图信息, 位图信息.BITMAPINFOHEADER.biSize)
' 构造位图文件头
位图文件头.bfType = 19778
位图文件头.bfOffBits = 2 × 4 + 3 × 2 + 位图信息.BITMAPINFOHEADER.biSize
位图文件头.bfSize = 位图文件头.bfOffBits + 位图信息.BITMAPINFOHEADER.biSizeImage
位图文件头.bfReserved1 = 0
位图文件头.bfReserved2 = 0
位图文件头字节集 = 取空白字节集 (14)
CopyMemory_BITMAPFILEHEADER (位图文件头字节集, 位图文件头, 14)
选入设备场景_ (内存设备上下文句柄, 旧位图句柄)
删除对象_ (位图句柄)
删除设备场景_ (内存设备上下文句柄)
释放设备场景_ (0, 屏幕设备上下文句柄)
返回 (位图文件头字节集 + 位图信息字节集 + 位图像素点阵)

@花老板

文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有5位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-08-18 17:12:35]  回复

    易语言图片截图范围

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
易语言多线程百度网盘安卓协议仓库管理系统自动发货表白程序极速文件分割类JsDroid2模块MongoDBJS禁止重复运行ExUI图标列表框微信刷步实时监控手动记牌块级元素AES高效加解密超级列表框背景透明FX3U通信易语言模块分析
最新评论