|
20精币
.版本 2
.支持库 spec
.子程序 窗口截图, 字节集, 公开
.参数 句柄, 整数型
.参数 区域左边, 整数型
.参数 区域顶边, 整数型
.参数 区域右边, 整数型
.参数 区域底边, 整数型
.局部变量 宽度_, 整数型
.局部变量 高度_, 整数型
.局部变量 点阵大小, 整数型
.局部变量 新位图数据, 字节集
.局部变量 位图指针, 整数型
.局部变量 设备场景, 整数型
.局部变量 内存场景, 整数型
.局部变量 对象句柄, 整数型
.局部变量 点阵指针, 整数型
.局部变量 位图句柄, 整数型
.局部变量 临时变量_1, 整数型
.局部变量 临时变量_2, 整数型
.局部变量 矩形1, 矩形_
.局部变量 pci, CURSORINFO
.局部变量 iconinfo, ICONINFO
.如果真 (区域左边 > 区域右边)
临时变量_1 = 区域左边
临时变量_2 = 区域右边
区域左边 = 临时变量_2
区域右边 = 临时变量_1
.如果真结束
.如果真 (区域顶边 > 区域底边)
临时变量_1 = 区域顶边
临时变量_2 = 区域底边
区域顶边 = 临时变量_2
区域底边 = 临时变量_1
.如果真结束
.如果真 (句柄 > 0)
取窗口矩形_ (句柄, 矩形1)
.如果真 (区域右边 > 矩形1.右边 - 矩形1.左边)
区域右边 = 矩形1.右边 - 矩形1.左边
.如果真结束
.如果真 (区域底边 > 矩形1.底边 - 矩形1.顶边)
区域底边 = 矩形1.底边 - 矩形1.顶边
.如果真结束
.如果真 (区域左边 > 区域右边)
临时变量_1 = 区域左边
临时变量_2 = 区域右边
区域左边 = 临时变量_2
区域右边 = 临时变量_1
.如果真结束
.如果真 (区域顶边 > 区域底边)
临时变量_1 = 区域顶边
临时变量_2 = 区域底边
区域顶边 = 临时变量_2
区域底边 = 临时变量_1
.如果真结束
.如果真结束
宽度_ = 区域右边 - 区域左边 + 1
高度_ = 区域底边 - 区域顶边 + 1
点阵大小 = (宽度_ × 3 + (4 - 宽度_ × 3 % 4) % 4) × 高度_
新位图数据 = { 66, 77 } + 到字节集 (取整 (点阵大小 + 54)) + { 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, 0 } + 到字节集 (宽度_) + 到字节集 (高度_) + { 1, 0, 24, 0, 0, 0, 0, 0 } + 到字节集 (点阵大小) + 取空白字节集 (16 + 点阵大小)
位图指针 = 取变量数据地址 (新位图数据)
.如果 (句柄 > 0)
设备场景 = 取设备场景_ (句柄)
.否则
设备场景 = 取窗口全部设备场景_ (句柄)
.如果结束
内存场景 = 创建内存场景_ (设备场景)
对象句柄 = 创建GDI对象_ (设备场景, 位图指针 + 14, 0, 点阵指针, 0, 0)
位图句柄 = 选入设备场景_ (内存场景, 对象句柄)
pci.cbSize = 20
取鼠标信息_ (pci)
取得图标信息_ (pci.hCursor, iconinfo)
复制场景位图_ (内存场景, 0, 0, 宽度_, 高度_, 设备场景, 区域左边, 区域顶边, 13369376)
画图标_ (内存场景, pci.ptScreenPos.x - iconinfo.xHotspot, pci.ptScreenPos.y - iconinfo.yHotspot, pci.hCursor)
_复制内存 (位图指针 + 54, 点阵指针, 点阵大小)
释放设备场景_ (句柄, 设备场景)
删除对象_ (对象句柄)
删除对象_ (位图句柄)
删除设备场景_ (内存场景)
返回 (新位图数据)
源码如上
1.物理机能截到Game的画面
2.虚拟机同样的操作截不到画面是什么原因,求大佬帮忙分析下
补充内容 (2023-12-28 12:41):
3.怎么修改 |
|