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. .net打独立运行环境遇到无法trim遇到的bug

    背景介绍 工作中我用到kotlin写代码,在orm上ktorm是一款非常优秀的操作db的框架,我喜欢用它所以我写了一个插件能够增加我的工作效率,这款idea插件的主体逻辑是.net开发的(没错是跨平台 ...

  2. Atcoder Grand Contest 024 E - Sequence Growing Hard(dp+思维)

    题目传送门 典型的 Atcoder 风格的计数 dp. 题目可以转化为每次在序列中插入一个 \([1,k]\) 的数,共操作 \(n\) 次,满足后一个序列的字典序严格大于前一个序列,问有多少种操作序 ...

  3. DP 做题记录 II.

    里面会有一些数据结构优化 DP 的题目(如 XI.),以及普通 DP. *I. P3643 [APIO2016]划艇 题意简述:给出序列 \(a_i,b_i\),求出有多少序列 \(c_i\) 满足 ...

  4. 【Python小试】使用列表解析式简化代码

    列表解析式的好处: 代码简洁 可读性强 运行快 示例 来自<Python编程>中的一个例子:同时投掷两颗面数不同的骰子(如一个6面的D6和一个10面的D10)n次,统计两个骰子点数之和,并 ...

  5. day18定时任务

    day18定时任务 什么是定时任务 类似日常生活之中的闹钟:主要用于定时执行某些命令,达到定时处理数据的作用. 作用: 1.类似生活中使用的闹钟 2.可以自动完成操作命令 3.定时备份系统数据信息 定 ...

  6. [PE]结构分析与代码实现

    PE结构浅析 知识导向: 程序最开始是存放在磁盘上的,运行程序首先需要申请4GB的内存,将程序从磁盘copy到内存,但不是直接复制,而是进行拉伸处理. 这也就是为什么会有一个文件中地址和一个Virtu ...

  7. Oracle中如何自定义类型

    一:Oracle中的类型有很多种,主要可以分为以下几类:1.字符串类型.如:char.nchar.varchar2.nvarchar2.2.数值类型.如:int.number(p,s).integer ...

  8. Multiple Inheritance in C++

    Multiple Inheritance is a feature of C++ where a class can inherit from more than one classes. The c ...

  9. RestTemplate进行访问分页PageInfo

    废话少说,给你们看代码: //provide的controller @ResponseBody @RequestMapping(value = "details",method = ...

  10. InnoDB学习(三)之BinLog

    BinLog又称为二进制日志,是MySQL服务层的数据日志,MySQL所有的存储引擎都支持BinLog.BinLog记录了MySQL中的数据更新和可能导致数据更新的事件,可以用于主从复制或数据恢复.本 ...