博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于mirror driver的windows屏幕录像
阅读量:4120 次
发布时间:2019-05-25

本文共 1523 字,大约阅读时间需要 5 分钟。

windows屏幕录像

        ————————2012/4

  时光荏苒,一年过去了,今日重拾那已故的记忆,写此随笔,来祭奠那未完结的项目。

经历:

  2012年4月,大二下学期,平静的课堂上老师通知了一个比赛。。。第一届大学生软件设计大赛!然后我选了第六题:windows屏幕录像。就这样我就开始了我的vc开发生涯。

 

  之前学了c/c++作为基础,自认为当时的自己学的还算不错(当然,现在看起来很可笑),然后就天天逃课,和同学一起查阅资料,学习win32、MFC。差不多用了两周的时间了解了一下在windows平台下有哪些屏幕录像的方法,GDI、DX、mirror driver 等等,最后由于题目要求的性能比较高(超级烂的硬件下还要求cpu消耗低于10%,内存使用小于20M),然后就选择了mirror driver,也是难度最大的一个。

 

  由于比较心急,而且第一次做项目,啥经验也没有,连win32、mfc编程的知识也没有,所以就开始乱七八糟的学vc,经过了漫长、痛苦、挣扎、纠结的一个月之后,做这个题目的也只有我一个人还在继续了。虽然项目很难,努力了那么久,我实在不甘心放弃,况且我当时是那么的爱vc。

 

  真是皇天不负有心人,经过了两周的时间,我把vnc官网上下载的源码,mirror driver录像的部分仔细的研究了一遍,终于明白了录像的流程。(话说现在想起来真的还是很佩服当时的自己,连vc都不清楚,居然把当时对于自己来说如此庞大的源码研究明白了)

  时间已经很紧迫,快接近尾声了,故开始一个人昼夜赶代码,当时还没有一点软件工程的概念,所以啥也没在纸上画,直接凭着感觉写,写得累,但很有激情。

 

  在还有两周就要交稿的时候,录像的功能基本实现了。通过镜像驱动将屏幕变化的矩形区域信息放到一个temp共享文件中,然后读取出来用xvid压缩成flv文件。在xp系统上(硬件:CPU 2.2GHz;内存2G)测试cpu消耗20%,内存消耗40M。是题目性能要求的2倍了,当时判断是使用xvid压缩的原因。

 

  此时,题目要求的其它部分:网络传输,帧编号,记录矩形日志.......都还没做,况且录像部分不能直接压缩为视频文件,需要优化有进行网络传输。现在看来这些东西很简单,但当时对于自己来说又是空白的,学的时间也不够了。本来之前是分配给另外两个组员做的,但是......,然后还被强行安排了一个不懂编程的指导老师。。。。。。想想时间也不够了,一阵心酸之后,决定放弃吧!假期的时候认真学一下vc。。。然后我的第一个vc项目就这样终结了,很遗憾,它没能被完成,现在自己的发展方向也不是vc了,所以就没有继续,只能将它扔到一边,写此文祭奠一下。。。。。。。

 

now,2013年初,该程序已经完成,留着明年做毕业答辩用, 
想要看源码的朋友,可以联系我,我这里以前的很多资料和源码都还保留着的。

源码已经上传,现在不做pc开发了,有需要的朋友自己慢慢研究吧

//----2015

本以为没有朋友会再研究这个了,没想到到现在都还有朋友在要源码,改天空了我把积分下载删了,上传一份免费的上去。(在上学时经常下载东西,缺积分、所以才弄了个积分下载勒索点积分用用,哈哈)

http://pan.baidu.com/s/1hqRqCio

//----

 

总结:

 1. 编程没有绝度的困难,面临一个不懂的问题时,只要认真的去查阅资料,认真的去看别人写的代码,一定时间后便能拨开迷雾见晴天。

 2. 组建一个团队很重要,若团队中有人懈气了,那么这种情况很可能蔓延下去,队长应该及时与他沟通,给予鼓励。如团队中每个人都充满激情,信心百倍,那么再难的项目只要动手去做,都会成功的。

 

 

 

转载地址:http://qltpi.baihongyu.com/

你可能感兴趣的文章
android开发环境安装(MyEclipse8.6+JDK+ADT16)
查看>>
Android 服务器推送技术
查看>>
androidpn 作为Android推送方案存在的问题
查看>>
oracl 数据库中查询当前时间前几天的数据
查看>>
weblogic下开发web项目时修改java文件不用重启的绿色方法,不用修改weblogic的配置文件、不用jar
查看>>
struts2开发时通过interceptor拦截器实现输入数据过滤前后空格的功能
查看>>
java 中系统参数说明
查看>>
orcale 插入大量数据时出的问题
查看>>
JS 用JS实现跟随光标的提示
查看>>
优秀程序员的十个习惯
查看>>
JS 网页中一个控件变化,其他的都不可读
查看>>
JSP 页面中对Cookie的操作
查看>>
Ajax (部分二:prototype.js代码后半部分)自己做的,总结页面向后台传Form值、单个值和后台向前台传一个或是一组值...
查看>>
Ajax (部分二:prototype.js代码前半部)自己做的,总结页面向后台传Form值、单个值和后台向前台传一个或是一组值...
查看>>
Ajax (部分一)自己做的,总结页面向后台传Form值、单个值和后台向前台传一个或是一组值...
查看>>
JS 横向图片跑马灯效果
查看>>
JS 屏蔽按键效果和改变按键效果
查看>>
JS 屏蔽右键菜单
查看>>
Java 的上溯造型和下溯造型以及举例,以及判断参数等指向的类
查看>>
Java 轻量级锁原理详解(Lightweight Locking)
查看>>