【开源项目】基于Directx屏幕录制
#include<d3d9.h>
#include<iostream>
#pragma comment(lib,"d3d9.lib")
using namespace std;
//截取全屏
void CaptureScreen(void *data)
{//1 创建directx3d对象static IDirect3D9 *d3d = nullptr;if (!d3d){d3d = Direct3DCreate9(D3D_SDK_VERSION);}if (!d3d)return;//2 创建显卡设备对象static IDirect3DDevice9 *device = nullptr;if (!device){D3DPRESENT_PARAMETERS pa;ZeroMemory(&pa,sizeof(D3DPRESENT_PARAMETERS));pa.Windowed = true;pa.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;pa.SwapEffect = D3DSWAPEFFECT_DISCARD;pa.hDeviceWindow = GetDesktopWindow();d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, 0,D3DCREATE_HARDWARE_VERTEXPROCESSING, &pa, &device);if (!device)return;}int w = GetSystemMetrics(SM_CXSCREEN);int h = GetSystemMetrics(SM_CYSCREEN);//3 创建离屏表面static IDirect3DSurface9 *sur = nullptr;if (!sur){device->CreateOffscreenPlainSurface(w,h,D3DFMT_A8R8G8B8,//像素格式D3DPOOL_SCRATCH,//存储位置 &sur,0);}if (!sur)return;//4 截取屏幕device->GetFrontBufferData(0,sur);//5 取出数据D3DLOCKED_RECT rect;ZeroMemory(&rect, sizeof(rect));if (sur->LockRect(&rect, 0, 0) != S_OK){return;}memcpy(data, rect.pBits, w * h * 4);sur->UnlockRect();//解锁cout << ".";
}int main()
{FILE *fp = fopen("out.rgb", "wb");int size = 1920 * 1080 * 4;char *buffer = new char[size];for (int i = 0; i < 100; i++){CaptureScreen(buffer);fwrite(buffer,1,size,fp);Sleep(100);}return 0;
}
【开源项目】基于Directx屏幕录制相关推荐
- DoNet开源项目-基于jQuery EasyUI的后台管理系统
本文转载于 石佳劼的博客,有问题请到原文咨询,原文连接. 博主在业余时间开发了一个简单的后台管理系统,其中用到了 jQuery EasyUI 框架,上次分享过系统布局,参考文章:jQuery Easy ...
- DoNet开源项目-基于Amaze UI的点餐系统
本文转载于 石佳劼的博客,有问题请到原文咨询,原文连接. 点餐系统 帮朋友做的点餐系统,主要是为了让顾客在餐桌上,使用微信扫描二维码,就可以直接点菜,吃完使用微信付款. 系统演示地址,账户名和密码均为 ...
- 开源项目-基于Intel VT技术的Linux内核调试器
本开源项目将硬件虚拟化技术应用在内核调试器上,使内核调试器成为VMM,将操作系统置于虚拟机中运行,即操作系统成为GuestOS,以这样的一种形式进行调试,最主要的好处就是调试器对操作系统完全透明.如下 ...
- Web 自动化解决方案 [开源项目] 基于 Selenium 的 Web 自动化测试框架完美版
欢迎查阅Selenium(Web自动化测试框架体系) Selenium ) Selenium是一个用于Web应用程序的自动化测试工具,直接运行在浏览器中,就像真正的用户在操作一样• 支持的浏览器包括I ...
- 开源项目-基于小熊派STM32红外热成像仪
点击上方"嵌入式应用研究院",选择"置顶/星标公众号" 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 中秋假期 ...
- TestCaseManageSystem 自动化解决方案 [开源项目] 基于 AgileTC 的测试用例自动化框架完美版
欢迎查阅TestCaseManageSystem(测试用例管理系统) AgileTC TestCaseManageSystem是一套敏捷的测试用例管理平台,支持测试用例管理.执行计划管理.进度计算. ...
- 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅消费
背景 早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求.不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝 ...
- App 自动化解决方案 [开源项目] 基于 Appium 的 UI 自动化测试框架完美版
欢迎查阅Appium(Android自动化测试框架体系) Appium Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的,可用于IOS和Android以 ...
- [开源项目]基于FPGA的视频图像拼接融合
基于FPGA的视频图像拼接融合 本项目简单来说,就是实时生成视频全景图,该架构经过优化,可以实时视频输出. 算法 下图说明了描述算法每个步骤的系统框图 该系统大致可以分为三个子系统: 预处理 基于 S ...
最新文章
- 【怎样写代码】实现对象的复用 -- 享元模式(三):享元模式
- mysql datetime 对于hbm_MySQL库表设计小技巧
- 怎么解决eclipse报PermGen space异常的问题
- 用java写的常见排序
- 转:巧用搜狗输入法输入英文单词
- hadoop namenode启动不了_集群版hadoop安装,写给大忙人看的
- LSGANs : Least Squares GAN(最小二乘GAN)--解决标准GAN生成的图片质量不高以及训练过程不稳定问题
- confluence启动不起来_“一键启动”只能点火?还有这5个“隐藏”功能,你都知道吗?...
- Excel常见问题总结
- HDU2594 Simpsons’ Hidden Talents 前缀与后缀转化成用s1去匹配s2
- LM2596S DC-DC可调降压模块
- keil uvision4 汉化破解版v4.12
- java毕业设计小小银动漫网站源码+lw文档+mybatis+系统+mysql数据库+调试
- 三菱PLC功能指令详解
- P6207 [USACO06OCT] Cows on Skates G
- [转载]班主任带着学生打副本 每周学习成绩就是DKP(这篇太雷人了,转载保持)...
- RSAT(Regulatory Sequence Analysis Tools)详解
- AirTest Poco定位 和启动方式
- linux的一页是多大
- TI芯片TMS320DM642开发
热门文章
- 余数运算符在Java中用于Doubles
- java接口版本控制_为什么要在Java中控制类和接口的可见性
- Java 8之前和之后的Lambda表达式
- 我可以/应该在事务上下文中使用并行流吗?
- java servlet_Java Servlet的前100个问题
- jms spring_JMS和Spring:有时很重要的小事情
- 使用Okta的单点登录保护您的Vert.x服务器
- camel.js_Camel 2.11 –具有URL重写功能的HTTP代理路由
- JavaOne 2016 Essentials:7个您不容错过的事件和会话
- 状态模式 处理订单状态_将状态机模式实现为流处理器