精易论坛

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

作者: 斗战胜猴    时间: 2025-6-25 22:03
标题: 类_截图光速 纯汇编源码 快的没边
本帖最后由 斗战胜猴 于 2025-6-26 16:49 编辑

类_截图光速  快的没边深度锁死24位,完整的24位图,可自定义,指定窗口,指定起点,指定宽高
找图利器
全屏 1920*1080 10次 500毫秒 测试环境 win10 cpu主频率2.7GHZ 逻辑8 内核8 L1:512KB L2:8.0MB
指定窗口250*128 10次 15毫秒 1000次 耗时:382.3438毫秒

应网友需求 更新内容 添加自定义 截图光速副屏2K
' 以下是根据需求 自定义的副屏起点的, 副屏宽高也可自定义,根据副屏的方向 自己算 例如
' 副屏宽度=2560
' 副屏高度=1440
' 副屏在左边 x-副屏宽度
' 副屏在右边 x+屏幕宽度
' 副屏在上边 y-副屏高度
' 副屏在下边 y+屏幕高度



如需其他位深度截图请转 类_截图快速
类_截图快速 可定义深度截图






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

截图32位20250625214245.png

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

截图32位20250625214530.png

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

截图32位20250625222151.png

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

截图32位20250625222535.png

类_截图光速.e

33.33 KB, 下载次数: 92, 下载积分: 精币 -2 枚

添加自定义副屏模式


作者: 撒加    时间: 2025-6-25 22:14
试试 看看支持后台吗
作者: 斗战胜猴    时间: 2025-6-25 22:26
撒加 发表于 2025-6-25 22:14
试试 看看支持后台吗

支持遮挡的
作者: 呓语丶    时间: 2025-6-25 23:20
速度确实极快   但测试的时候  发现双屏且分辨率不同的情况下,截图桌面异常的情况
主屏1920*1080 截图无异常  
副屏2560*1440  截取副屏的情况下  宽高只能正常显示1920*1080   尺寸以外是全黑



作者: Fate    时间: 2025-6-25 23:27
感谢分享
作者: 豆豆灰常开心    时间: 2025-6-26 07:13
已经顶贴,感谢您对论坛的支持!
作者: 查过    时间: 2025-6-26 07:17
感谢楼主分享!
作者: qqmqqg    时间: 2025-6-26 07:36
你自己测试一下  有没有 快照  好事
作者: 斗战胜猴    时间: 2025-6-26 07:42
qqmqqg 发表于 2025-6-26 07:36
你自己测试一下  有没有 快照  好事

怎么没快照好使,快照能自定义起点和宽高吗,它只负责缩放
作者: 杨明煜    时间: 2025-6-26 07:53
感谢分享,真好!......
作者: year1970    时间: 2025-6-26 07:53
感谢分享
作者: 3742922    时间: 2025-6-26 08:27
感谢分享  实测 确实牛叉~~~~~~~
作者: 斗战胜猴    时间: 2025-6-26 08:46
呓语丶 发表于 2025-6-25 23:20
速度确实极快   但测试的时候  发现双屏且分辨率不同的情况下,截图桌面异常的情况
主屏1920*1080 截图无异 ...

不清楚您的 截图方式窗口句柄什么。每次截图都会 获取句柄的矩形坐标,来判断截图的宽高是否被改变。不指定窗口句柄 默认窗口句柄0是65552,主屏和副屏不能同窗口句柄把 主屏分辨率1920*1080,你没设副屏窗口句柄的话 截出来的图 按默认窗口句柄0是65552的宽高截图的。
作者: A9952    时间: 2025-6-26 09:10
斗战胜猴 发表于 2025-6-25 22:26
支持遮挡的

win7也支持吗

作者: fengshangren    时间: 2025-6-26 09:18
能多快,应该跟快照相差不大吧
作者: wh1234567    时间: 2025-6-26 09:23
感谢分享
作者: 一指温柔    时间: 2025-6-26 09:32
感谢分享
作者: wgqxj    时间: 2025-6-26 09:56
谢谢分享
作者: 呓语丶    时间: 2025-6-26 12:26
斗战胜猴 发表于 2025-6-26 08:46
不清楚您的 截图方式窗口句柄什么。每次截图都会 获取句柄的矩形坐标,来判断截图的宽高是否被改变。不指 ...

我有精易助手获取了一下桌面句柄     双屏是同一个桌面句柄65552
截图的时候我直接句柄为空    x坐标为-2560  y为0    宽高最多只能1920*1080  再大就是黑色了
作者: 艺术就是爆炸    时间: 2025-6-26 13:56
谢谢分享 ·学习下

作者: 斗战胜猴    时间: 2025-6-26 15:05
本帖最后由 斗战胜猴 于 2025-6-26 16:11 编辑
呓语丶 发表于 2025-6-26 12:26
我有精易助手获取了一下桌面句柄     双屏是同一个桌面句柄65552
截图的时候我直接句柄为空    x坐标为-2 ...

窗口65552的的矩形是1920*1080 宽高再大 点阵颜色也不会超多这个,也是画布的大小,你说的副屏 需要定义一个初始化4000*4000的位图,这样就可以把副屏的图像搞出来了,每次截图 先刷新 再复制出来
就像这样的就能截取副屏了,不过需要你自定义副屏宽高,,偏移可以维持原先的

  
窗口程序集名保 留  保 留备 注
(未填写程序集名)   
变量名类 型数组备 注
变量名类 型数组备 注
集_窗口宽度2K整数型  
集_窗口高度2K整数型  

子程序名返回值类型公开备 注
初始化窗口2K 2K(2560×1440)或4K(3840×2160) 4K(3840×2160)、8K(7680×4320)
参数名类 型参考可空数组备 注
参_窗口句柄 
参_宽度 
参_高度 
变量名类 型静态数组备 注
RectRECT 
局_指针整数型 
如果真 (集_窗口设备DC ≠ 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“user32.dll”), “ReleaseDC”), , , 集_窗口句柄, 集_窗口设备DC)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “DeleteDC”), , , 集_窗口场景句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “DeleteObject”), , , 集_窗口位图句柄)
集_窗口句柄 = 参_窗口句柄
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“user32.dll”), “GetWindowDC”), , 集_窗口设备DC, 参_窗口句柄)
集_窗口宽度2K = 参_宽度
集_窗口高度2K = 参_高度
集_位图点阵长度 = 位图_取颜色数据长度 (集_窗口宽度2K, 集_窗口高度2K, 24)
集_窗口位图 = { 66, 77, 54, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 14, 0, 0, 196, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }取空白字节集 (集_位图点阵长度)
局_指针 = PtrBin (集_窗口位图)
集_窗口位图信息指针 = 局_指针 + 14
集_窗口位图颜色指针 = 局_指针 + 54
PtrSetInt (局_指针, 2, 54 + 集_位图点阵长度)
PtrSetInt (局_指针, 18, 集_窗口宽度2K)
PtrSetInt (局_指针, 22, 集_窗口高度2K)
PtrSetInt (局_指针, 34, 集_位图点阵长度)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “CreateCompatibleDC”), , 集_窗口场景句柄, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “CreateDIBSection”), , 集_窗口位图句柄, 集_窗口场景句柄, 集_窗口位图信息指针, 0, PtrInt (集_位图点阵指针), 0, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “SelectObject”), , , 集_窗口场景句柄, 集_窗口位图句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“user32.dll”), “PrintWindow”), , , 参_窗口句柄, 集_窗口场景句柄, 0)
' ' 调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “BitBlt”), , , 集_窗口场景句柄, 0, 0, 集_窗口宽度, 集_窗口高度, 集_窗口设备DC, 0, 0, 13369376)
' ' 调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “GetDIBits”), , , 集_窗口场景句柄, 集_窗口位图句柄, 0, 集_窗口高度, 集_窗口位图颜色指针, 集_窗口位图信息指针, 0)
子程序名返回值类型公开备 注
截图2K字节集 24位图 格式.bmp  2K(2560×1440)或4K(3840×2160) 4K(3840×2160)、8K(7680×4320)
参数名类 型参考可空数组备 注
参_窗口句柄整数型空0为屏幕65552
参_起点X整数型
参_起点Y整数型
参_宽度整数型
参_高度整数型
参_宽度2K整数型
参_高度2K整数型
变量名类 型静态数组备 注
局_BitX整数型 
局_BitY整数型 
局_窗口宽度新整数型 
局_窗口高度新整数型 
局_指针整数型 
局_位图点阵长度整数型 
参_窗口句柄 = 选择 (参_窗口句柄 = 0, 65552, 参_窗口句柄)
如果 (集_窗口设备DC = 0 参_窗口句柄 ≠ 集_窗口句柄 集_窗口宽度2K = 0 集_窗口高度2K = 0)
初始化窗口2K (参_窗口句柄, 选择 (参_宽度2K > 0, 参_宽度2K, 2560), 选择 (参_宽度2K > 0, 参_宽度2K, 1440))
如果真 (参_宽度2K > 集_窗口宽度2K 参_高度2K > 集_窗口高度2K)
初始化窗口2K (参_窗口句柄, 选择 (参_宽度2K > 0, 参_宽度2K, 2560), 选择 (参_宽度2K > 0, 参_宽度2K, 1440))

局_窗口宽度新 = 选择 (参_宽度 = 0, 集_窗口宽度2K, 参_宽度)
局_窗口高度新 = 选择 (参_高度 = 0, 集_窗口高度2K, 参_高度)
局_BitX = 参_起点X
局_BitY = 参_起点Y
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “BitBlt”), , , 集_窗口场景句柄, 0, 0, 局_窗口宽度新, 局_窗口高度新, 集_窗口设备DC, 局_BitX, 局_BitY, 13369376)
如果真 (局_窗口宽度新 = 集_窗口宽度2K 局_窗口高度新 = 集_窗口高度2K)
RtlMoveMemory_整数型 (集_窗口位图颜色指针, 集_位图点阵指针, 集_位图点阵长度)
返回 (集_窗口位图)
如果 (局_窗口宽度新 = 集_窗口宽度新 局_窗口高度新 = 集_窗口高度新)

集_窗口宽度新 = 局_窗口宽度新
集_窗口高度新 = 局_窗口高度新
局_位图点阵长度 = 位图_取颜色数据长度 (局_窗口宽度新, 局_窗口高度新, 24)
集_窗口位图新 = { 66, 77, 54, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 14, 0, 0, 196, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }取空白字节集 (局_位图点阵长度)
局_指针 = PtrBin (集_窗口位图新)
集_窗口位图信息数据指针新 = 局_指针 + 14
集_窗口位图颜色数据指针新 = 局_指针 + 54
PtrSetInt (局_指针, 2, 54 + 局_位图点阵长度)
PtrSetInt (局_指针, 18, 局_窗口宽度新)
PtrSetInt (局_指针, 22, 局_窗口高度新)
PtrSetInt (局_指针, 34, 局_位图点阵长度)
调用子程序_通用型 (GetProcAddress_汇编 (GetModuleHandleA_汇编 (“gdi32.dll”), “GetDIBits”), , , 集_窗口场景句柄, 集_窗口位图句柄, 0, 集_窗口高度新, 集_窗口位图颜色数据指针新, 集_窗口位图信息数据指针新, 0)
返回 (集_窗口位图新)

作者: 斗战胜猴    时间: 2025-6-26 16:51
呓语丶 发表于 2025-6-26 12:26
我有精易助手获取了一下桌面句柄     双屏是同一个桌面句柄65552
截图的时候我直接句柄为空    x坐标为-2 ...

已更新副屏模式
作者: 何浩文    时间: 2025-6-26 16:52
感谢分享,很给力!~
作者: kmskik    时间: 2025-6-26 19:17
牛逼克拉斯,感谢分享
作者: wyd134    时间: 2025-6-26 20:49
感谢分享,对我很有帮助
作者: ttggnn    时间: 2025-6-26 21:20
感谢分享
作者: 呓语丶    时间: 2025-6-26 23:15
斗战胜猴 发表于 2025-6-26 16:51
已更新副屏模式

牛逼   完美解决
作者: 豆豆灰常开心    时间: 2025-6-27 07:09
已经顶贴,感谢您对论坛的支持!
作者: 查过    时间: 2025-6-27 07:13
已经顶贴,感谢您对论坛的支持!
作者: please    时间: 2025-6-28 09:38
感谢分享,支持开源!!!
作者: aosheng    时间: 7 天前
66666666666666666666666666
作者: 2446789312    时间: 7 天前

作者: 网络注册络员    时间: 7 天前
        感谢分享
作者: 你不丑    时间: 6 天前
保存出去的图片全是黑色 不知道为何 .版本 2      字节集 = 类_截图光速.截图 (526270, 0, 0, 1700, 1000)     写到文件 (取运行目录 () + “\” + 到文本 (i) + “.bmp”, 字节集)
作者: 奶牛    时间: 6 天前
可以把这个用作远程控制吗
作者: 斗战胜猴    时间: 6 天前
本帖最后由 斗战胜猴 于 2025-6-30 11:08 编辑
你不丑 发表于 2025-6-30 06:18
保存出去的图片全是黑色 不知道为何 .版本 2      字节集 = 类_截图光速.截图 (526270, 0, 0, 1700, 1000) ...

不是所有窗口都支持 截图的,例如QQ登录界面就无法通过窗口截图

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

截图32位20250630111021.png

作者: 我的yyy123    时间: 6 天前
学习学习
作者: clhehy    时间: 6 天前
刷点币,没钱了
作者: 恋尘    时间: 6 天前
比大漠的高速截图还快吗
作者: 1760831266    时间: 5 天前
我下载来看看什么情况
作者: xuehaiyouya    时间: 5 天前
路过看看
作者: sunfly    时间: 4 天前
如何光速法?
作者: cloudweb    时间: 前天 20:02
我下载来看看什么情况
作者: cloudweb    时间: 前天 20:03
不是所有窗口都支持 截图的
作者: 1760831266    时间: 昨天 10:48
光速,可以哦




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