精易论坛

标题: 类_截图快速 纯汇编源码 [打印本页]

作者: 斗战胜猴    时间: 2025-6-24 11:35
标题: 类_截图快速 纯汇编源码
本帖最后由 斗战胜猴 于 2025-6-24 11:52 编辑

类_截图快速 纯汇编源码默认自动初始化,包括屏幕或窗口信息被改变,都会自动初始化
默认是24位图,可自定义全位图深度 1,4,8,16,24,32
根据截取的宽高 决定速度
1920*1080 10次屏幕全屏幕截图 * 耗时:729.8449毫秒左右,平均73毫秒一次截图全屏幕位图,
1920*1080 10次屏幕指定位置截图 256*128 * 耗时:189.9227毫秒左右,平均19毫秒一次截图屏幕指定位置位图
256*128 10次窗口全窗口截图 * 耗时:20.9173毫秒左右,平均2毫秒一次截图全窗口位图




截图32位20250624102555.png (5.94 KB, 下载次数: 1)

截图32位20250624102555.png

截图32位20250624110459.png (53.57 KB, 下载次数: 2)

截图32位20250624110459.png

截图32位20250624110326.png (79.81 KB, 下载次数: 2)

截图32位20250624110326.png

截图32位20250624111041.png (88.34 KB, 下载次数: 1)

截图32位20250624111041.png

类_截图快速.e

71.53 KB, 下载次数: 103, 下载积分: 精币 -2 枚


作者: baitso    时间: 2025-6-24 11:50
感谢分享!!
作者: 斗战胜猴    时间: 2025-6-24 11:53
调试使用的动态窗口

动态窗口.e

2.75 KB, 下载次数: 5, 下载积分: 精币 -2 枚

调试使用


作者: 我的yyy123    时间: 2025-6-24 12:00
学习学习
作者: qqmqqg    时间: 2025-6-24 12:14
6666666666666666666
作者: qqmqqg    时间: 2025-6-24 12:26
还没有快照 好使
作者: 斗战胜猴    时间: 2025-6-24 13:25
qqmqqg 发表于 2025-6-24 12:26
还没有快照 好使

这是全位深度截图,自定义起点位置和宽度高度 。这种每次截图都要 更新位图 创建新深度位图 。

快照是24位深度,单独模式且只能定义宽高 初始化就能产生24位图,每次截图只需 复制一下指定宽高再取点阵 更新)就出结果了,不是一码事。不考虑其他问题。
文件头+信息头+取点阵,文件头信息头初始化就已经 配置好了。


作者: 3742922    时间: 2025-6-24 13:59
        感谢分享,十分需要
作者: xmcx888    时间: 2025-6-24 14:18
        感谢分享,十分需要
作者: Kyu    时间: 2025-6-24 14:32
差个显示鼠标图标
作者: 无极T    时间: 2025-6-24 16:23
        感谢分享,很给力!~
作者: 灵猫作者    时间: 2025-6-24 19:58
感谢分享,很给力!~
作者: bianyuan456    时间: 2025-6-24 20:30
已经顶贴,感谢您对论坛的支持!
作者: ttggnn    时间: 2025-6-24 21:17
感谢分享
作者: kmskik    时间: 2025-6-24 21:56
感谢分享谢谢
作者: lassgo    时间: 2025-6-25 05:32
欢迎常来帮助新人,感谢你的无私付出~
作者: 豆豆灰常开心    时间: 2025-6-25 07:19
感谢发布原创作品,精易因你更精彩!6666666666666
作者: 查过    时间: 2025-6-25 07:24
下个学习一下
作者: year1970    时间: 2025-6-25 07:50
感谢分享
作者: muye84    时间: 2025-6-25 08:04

感谢分享
作者: 佛学e语言    时间: 2025-6-25 08:29
谢谢分享
作者: ﹏最后的拥抱へ    时间: 2025-6-25 08:42
感谢分享
作者: 一指温柔    时间: 2025-6-25 08:54
感谢分享
作者: wh1234567    时间: 2025-6-25 09:47
感谢分享
作者: 斗战胜猴    时间: 2025-6-25 13:03
本帖最后由 斗战胜猴 于 2025-6-25 17:01 编辑

关于8位图调色板被替换的问题修复
默认 api GetDIBits会使用他自带的内存调色板,二非我们自定义的系统默认调色板,使用系统调色板 8位图色彩 将近1比1还原24位图的颜色
  
子程序名返回值类型公开备 注
截图屏幕字节集 
参数名类 型参考可空数组备 注
参_起点X整数型
参_起点Y整数型
参_宽度整数型
参_高度整数型
参_位深度整数型1,4,8,16,24,32 默认24
变量名类 型静态数组备 注
局_场景句柄整数型 
局_位图句柄整数型 
局_位深度整数型 
局_BitX整数型 
局_BitY整数型 
局_宽度整数型 
局_高度整数型 
局_屏幕位图新字节集 
局_屏幕位图信息指针新整数型 
局_屏幕位图颜色指针新整数型 
如果 (集_屏幕设备DC = 0)
初始化屏幕 ()
如果真 (是否需要再次初始化屏幕 ())
初始化屏幕 ()

局_宽度 = 选择 (参_宽度 = 0, 集_屏幕宽度, 参_宽度)
局_高度 = 选择 (参_高度 = 0, 集_屏幕高度, 参_高度)
局_位深度 = 选择 (参_位深度 ≥ 1 参_位深度 ≤ 32, 参_位深度, 24)
局_BitX = 参_起点X
局_BitY = 参_起点Y
局_屏幕位图新 = 位图_创建空白位图 (局_宽度, 局_高度, 局_位深度)
局_屏幕位图信息指针新 = 位图_取位图信息数据指针 (局_屏幕位图新)
局_屏幕位图颜色指针新 = 位图_取位图颜色数据指针 (局_屏幕位图新)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “BitBlt”), , , 集_屏幕场景句柄, 0, 0, 局_宽度, 局_高度, 集_屏幕设备DC, 局_BitX, 局_BitY, 13369376)
如果 (局_位深度 ≥ 16)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “GetDIBits”), , , 集_屏幕场景句柄, 集_屏幕位图句柄, 0, 局_高度, 局_屏幕位图颜色指针新, 局_屏幕位图信息指针新, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “CreateCompatibleDC”), , 局_场景句柄, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “CreateDIBSection”), , 局_位图句柄, 局_场景句柄, 局_屏幕位图信息指针新, 0, 局_屏幕位图颜色指针新, 0, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “SelectObject”), , , 局_场景句柄, 局_位图句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “BitBlt”), , , 局_场景句柄, 0, 0, 局_宽度, 局_高度, 集_屏幕场景句柄, 0, 0, 13369376)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “GetDIBits”), , , 局_场景句柄, 局_位图句柄, 0, 局_高度, 局_屏幕位图颜色指针新, 局_屏幕位图信息指针新, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “DeleteDC”), , , 局_场景句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “DeleteObject”), , , 局_位图句柄)
返回 (局_屏幕位图新)
子程序名返回值类型公开备 注
截图窗口字节集 
参数名类 型参考可空数组备 注
参_窗口句柄整数型空0为屏幕65552
参_起点X整数型
参_起点Y整数型
参_宽度整数型
参_高度整数型
参_位深度整数型1,4,8,16,24,32 默认24
变量名类 型静态数组备 注
局_场景句柄整数型 
局_位图句柄整数型 
局_位深度整数型 
局_BitX整数型 
局_BitY整数型 
局_窗口宽度新整数型 
局_窗口高度新整数型 
局_窗口位图新字节集 
局_窗口位图信息指针新整数型 
局_窗口位图颜色指针新整数型 
参_窗口句柄 = 选择 (参_窗口句柄 = 0, 65552, 参_窗口句柄)
如果 (集_窗口设备DC = 0 参_窗口句柄 ≠ 集_窗口句柄)
初始化窗口 (参_窗口句柄)
如果真 (是否需要再次初始化窗口 (参_窗口句柄))
初始化窗口 (参_窗口句柄)

局_窗口宽度新 = 选择 (参_宽度 = 0, 集_窗口宽度, 参_宽度)
局_窗口高度新 = 选择 (参_高度 = 0, 集_窗口高度, 参_高度)
局_位深度 = 选择 (参_位深度 ≥ 1 参_位深度 ≤ 32, 参_位深度, 24)
局_BitX = 参_起点X
局_BitY = 参_起点Y
局_窗口位图新 = 位图_创建空白位图 (局_窗口宽度新, 局_窗口高度新, 局_位深度)
局_窗口位图信息指针新 = 位图_取位图信息数据指针 (局_窗口位图新)
局_窗口位图颜色指针新 = 位图_取位图颜色数据指针 (局_窗口位图新)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “BitBlt”), , , 集_窗口场景句柄, 0, 0, 局_窗口宽度新, 局_窗口高度新, 集_窗口设备DC, 局_BitX, 局_BitY, 13369376)
如果 (局_位深度 ≥ 16)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “GetDIBits”), , , 集_窗口场景句柄, 集_窗口位图句柄, 0, 局_窗口高度新, 局_窗口位图颜色指针新, 局_窗口位图信息指针新, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “CreateCompatibleDC”), , 局_场景句柄, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “CreateDIBSection”), , 局_位图句柄, 局_场景句柄, 局_窗口位图信息指针新, 0, 局_窗口位图颜色指针新, 0, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “SelectObject”), , , 局_场景句柄, 局_位图句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “BitBlt”), , , 局_场景句柄, 0, 0, 局_窗口宽度新, 局_窗口高度新, 集_窗口场景句柄, 0, 0, 13369376)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “GetDIBits”), , , 局_场景句柄, 局_位图句柄, 0, 局_窗口高度新, 局_窗口位图颜色指针新, 局_窗口位图信息指针新, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “DeleteDC”), , , 局_场景句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “DeleteObject”), , , 局_位图句柄)
返回 (局_窗口位图新)
子程序名返回值类型公开备 注
位图_取位图信息数据指针整数型 完整位图指针+文件头长度 , api使用GetDIBits 会替换原调色板8位图
参数名类 型参考可空数组备 注
完整位图字节集
置入代码 ({ 139, 69, 8, 139, 0, 131, 248, 0, 116, 6, 131, 192, 8, 131, 192, 14, 201, 194, 4, 0 })
返回 (0)
子程序名返回值类型公开备 注
位图_取位图颜色数据指针整数型 完整位图指针+54+调色板长度 , api使用GetDIBits 会替换原调色板8位图
参数名类 型参考可空数组备 注
完整位图字节集
置入代码 ({ 139, 69, 8, 139, 0, 131, 248, 0, 116, 46, 131, 192, 8, 137, 195, 131, 192, 54, 139, 91, 28, 131, 251, 1, 116, 15, 131, 251, 4, 116, 15, 131, 251, 8, 116, 15, 131, 192, 0, 235, 15, 131, 192, 8, 235, 10, 131, 192, 64, 235, 5, 5, 0, 4, 0, 0, 201, 194, 4, 0 })
返回 (0)

作者: kyo9766    时间: 2025-6-25 15:41
学习一下截图,感谢分享
作者: wjswzj0    时间: 2025-6-25 19:13
感谢分享,很给力!~
作者: 艾玛克138    时间: 2025-6-25 21:57
谢谢大佬提供的精品
作者: 豆豆灰常开心    时间: 2025-6-26 07:14
感谢您对论坛的支持!
作者: 查过    时间: 2025-6-26 07:19
感谢分享,很给力!~
作者: 小虎来了    时间: 2025-6-26 09:17
感谢分享,很给力!~
作者: wyd134    时间: 2025-6-26 20:47
感谢分享,好东东
作者: 胖子葛格    时间: 2025-6-27 08:55
感谢大神分享~!
作者: asd2168972    时间: 7 天前
牛皮 ,多来点这种源码
作者: なす随风ぬね    时间: 7 天前
感谢分享,十分的需要
作者: please    时间: 7 天前
感谢分享,支持开源!!!
作者: hdldjese    时间: 7 天前
下载看看,学习一下
作者: 像神一样飘渺    时间: 6 天前
        感谢分享,很给力!~
作者: aosheng    时间: 6 天前
666666666666666666666
作者: aosheng    时间: 6 天前
666666666666666666666
作者: aosheng    时间: 6 天前
6666666666666666666666
作者: IIIllIIl    时间: 6 天前
感谢分享
作者: 2446789312    时间: 6 天前

作者: dongwang22    时间: 6 天前
谢谢大佬
作者: clhehy    时间: 5 天前
6666666666666666666
作者: 东方神功    时间: 5 天前
感谢分享,很给力!~
作者: ljx111    时间: 5 天前
感谢分享
作者: 我的yyy123    时间: 5 天前
学习学习
作者: cxjd1987    时间: 4 天前
好像有点牛逼的样子

作者: xkAnd    时间: 4 天前
感谢你的支持,精易有你更精彩,大家一起努力!
作者: pxianwei    时间: 4 天前
#在这里快速回复#感谢分享,很给力!~
作者: ppppzj    时间: 4 天前
感谢分享,很给力!~
~~
作者: 十亿光年    时间: 4 天前
大佬的帖子就是要顶顶




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4