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开发了,有需要的朋友自己慢慢研究吧http://download.csdn.net/download/scf821416394/5787977

//----2015

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

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

https://pan.baidu.com/s/1Dok3JAO1uQ848BmdgQDvQA

vnc mirror driver的更多相关文章

  1. VC Mirror Driver显示虚拟驱动经典开发

    一个简单的显示驱动实例windows wdk 7600的 mirror(镜像) 显示驱动部分基本流程:Windows 2000 DDK包含了一个例子镜像驱动程序,在 上面3个目录中包括了组件源文件.目 ...

  2. Windows安装VNC服务端

    下载VNC服务端 由于服务器在IDC机房,只能使用系统自带远程桌面连接到服务器进行安装VPC服务端 但在安装过程发现,如果是通过远程桌面连接到服务器进行安装,VNC Mirror Driver会报错无 ...

  3. vnc远程运行3D游戏

    使用的版本:VNC-5.2.3-Windows.exe   vnc官网 安装的过程中需要输入license key,以下给出一些enterprise license(最大权限的License): K5 ...

  4. Radmin Server-3.5 完美绿色破解版(x32 x64通用) 第三版 + 单文件制作方法

    Radmin Server v3.5 汉化破解绿色版(x32 x64通用) 第三版 下载链接: https://pan.baidu.com/s/1qYVcSQo 2016年7月8日更新第三版1.修复在 ...

  5. Windows桌面共享中一些常见的抓屏技术

    1. BitBlt 我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, 它就能实现抓屏功能. 对于通过这种方式的抓屏, ...

  6. Dokan[转]

    原文地址:http://www.cnblogs.com/xxonehjh/p/3634889.html 因工作需要,最近与同事合作使用Dokan开发了一个虚拟磁盘的简单程序,初步实现了远程目录映射到本 ...

  7. Dokan虚拟磁盘开发实战

    因工作需要,最近与同事合作使用Dokan开发了一个虚拟磁盘的简单程序,初步实现了远程目录映射到本地虚拟磁盘的功能. 远程服务端是用Python写的,主要是将远程主机上的目录文件传给客戶端,在这里就不细 ...

  8. UltraVNC 简体中文版 1.2.2.1

    1.专门针对WinXP进行编译,同时适用XP之后的Windows版本(XP/Vista/8.1/10/2003/2008/2012): 2.配置低的计算机,Win8.1之前的系统,需要安装Mirror ...

  9. Windows抓屏技术

    Windows桌面共享中一些常见的抓屏技术 1. BitBlt   我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, ...

随机推荐

  1. 洛谷 P7323 - [WC2021] 括号路径(启发式合并)

    题面传送门 emmmm----怎么评价这个题嘛...感觉纯论算法,此题根本谈不上难题,不过 WC 时候太智障只拿了个 48pts 就走人了.总之,技不如人,甘拜吓疯( 首先要注意到几件事情: 如果 \ ...

  2. P3722 [AH2017/HNOI2017]影魔(单调栈+扫描线+线段树)

    题面传送门 首先我们把这两个贡献翻译成人话: 区间 \([l,r]\) 产生 \(p_1\) 的贡献当且仅当 \(a_l,a_r\) 分别为区间 \([l,r]\) 的最大值和次大值. 区间 \([l ...

  3. python-django-常用models里面的Field

    1.models.AutoField 自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一个自增列,必须设置primary_key=True. 2.mode ...

  4. vector去重--unique

    具体实现见中间源码 function template <algorithm> std::unique equality (1) template <class ForwardIte ...

  5. Selenium-IDE在火狐上的扩展

    昨天突然想学学 Selenium,就上网查了一些介绍,发现一些教程基本都是比较老版本的了,使用起来略有不便,所以今天试着写一些最新版本的.请参考Selenium官网.文章以下内容都是在 Mac 机器上 ...

  6. 非线性回归支持向量机——MATLAB源码

    支持向量机和神经网络都可以用来做非线性回归拟合,但它们的原理是不相同的,支持向量机基于结构风险最小化理论,普遍认为其泛化能力要比神经网络的强.大量仿真证实,支持向量机的泛化能力强于神经网络,而且能避免 ...

  7. 避免UE4项目VS中误改源码.h文件导致编译时间长

    最近几天两次触发VS中误改UE4源码头文件,导致需要编译大量源码的情况:再好的习惯也有不可靠的时候,还是需要可靠方案解决这个问题:官方提供了预编译版本(即从Launcher中下载的版本),但是对于程序 ...

  8. C#gridview尾部统计

    protected void gridSettlement_RowDataBound(object sender, GridViewRowEventArgs e) { if (dtSettlement ...

  9. 这份github上被14万人点赞的Java教程太强了

    前几天有个小伙伴加我之后问了下面的这个问题.我看到后是一脸懵逼的状态,jcombobox?实话说,我已经完全忘了在Java中还有这么个东西. 在网上一番搜索后,才发现原来它是 swing 中的下拉列表 ...

  10. 巩固javaweb第十八天

    提交按钮 只要涉及提交信息,都应该提供一个提交按钮,当点击提交按钮的时候,用户输入的 信息将提交给服务器,意味着输入过程的结束.注册界面中也包含一个提交按钮. 提交按钮的基本格式如下: <inp ...