天天看點

vnc mirror driver

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