作者bugmens (c & cpp)
看板C_and_CPP
標題Re: [問題] 遠端遙控程式設計
時間Sun Jan 23 22:23:19 2011
※ 引述《scott20144 (DaYo)》之銘言:
: 小弟目前在練習在windows寫個遠端遙控電腦的程式,
: 如果是各位會想到有哪些因素會是主要問題?
: 我沒啥實作經驗,目前是想透過
: 被控制端 一直截取螢幕畫面 給 控制端
: 控制端 送 mouseposition 給 被控制端
: 透過以上來達到要求
: 目前是可以截取螢幕畫面跟控制鼠標位置及點擊
: 還沒連線,
: 可是我做一做發現一些問題..
: 1.截圖時每次都要存到硬碟裡 拖慢速度
: 2.傳送圖片時圖片大小是否會影響速度
: 3.截圖的畫面根本沒鼠標,這樣子控制端就不能控制了阿
: 4.截圖時如果有看影片,影像不能截取下來....
: 所以我想說我這樣是不是根本搞錯方向了
: 是否有更好的做法呢?
: 請各位前輩給些建議,謝謝!
請直接研究UltraVNC,TightVNC的原始碼會比較快
這些軟體都是用Mirror driver直接找出螢幕畫面有差異的部份
傳輸時就先壓縮有差異的區塊再送出去
假如差異的部分太大就直接傳整個畫面
什麼是Mirror driver可以上google查詢
我花了好多時間才從TightVNC裡把Mirror driver相關的程式碼抽出來完成一個小範例
http://delphi.ktop.com.tw/board.php?cid=168&fid=920&tid=47903#22
但也僅是如此,因為我知道我再怎麼寫也完成不了全部的功能
取得滑鼠游標可以看這篇
http://www.codeproject.com/KB/cs/DesktopCaptureWithMouse.aspx
把滑鼠位置和圖案送到client端,再"畫"出來
要抓影片的圖很難,因為牽扯到directX的技術,普通的方法一定抓到全黑的圖
但我在這篇有提到TAKSI
http://delphi.ktop.com.tw/board.php?cid=30&fid=74&tid=39811#31
我在原始碼裡繞來繞去畫成一張地圖,原理還不是很懂就宣告放棄了
http://delphi.ktop.com.tw/download/upload/46d2d9af774ea_DSC04734.JPG
最後講了那麼多還是請你研究VNC原始碼會比較快
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.130.244
推 tropical72: b 大好強 !! 01/23 22:47
推 tomap41017:太強了... 01/24 00:36
推 bdvstg:抓影片可以用一個爛招 調解析度那裏->進階->疑難排解-> 01/24 14:57
→ bdvstg:->硬體加速 把DirectX關掉 01/24 14:58
推 VictorTom:印象中看Player設定, 選到不會用Overlay的mixer, 就可以 01/24 21:49
→ VictorTom:用普通抓主framebuffer的方式抓了(含PrtScr). 只是個人 01/24 21:49
→ VictorTom:建議是, 除非有針對性, 不然還是先把影片這段跳過吧@_@" 01/24 21:49
推 scott20144:wow~~謝謝各位的建議! 01/24 23:04
推 Ting1024:目前最棒的應該是 TeamViewer 這套 :) 01/27 02:31
推 tropical72:遺憾的是 TeamViewer 不是免費 (更不是 open source) 01/27 03:05