線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1851
推到 Plurk!
推到 Facebook!

請問雙螢幕顯示卡搭配BitBlt寫法去擷取畫面影像問題?

答題得分者是:HikaruGo
g9412747
初階會員


發表:3
回覆:28
積分:36
註冊:2009-02-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-13 15:31:06 IP:59.120.xxx.xxx 訂閱
請問各位高手:

我有一個Canon G9相機,是USB介面,
可以經由廠商提供的軟體去看到即時視訊的畫面,
因為時間因素和若干原因,無法取得Canon G9 的SDK
目前情況是, 硬體上 , 我使用雙螢幕顯示卡
搭配一母二公VGA 的線接到"一台"螢幕
螢幕上有兩個Application ,一個是我自己寫的程式畫面 ,一個就是 Canon廠商的Application畫面
我用簡單的bitblt方式將Application的即時視訊畫面區域 , 顯示在我自己的程式上
這方法很OK , 模擬的結果像似自己套用Canon SDK的方式寫出來,只是解析度不佳
這條件必須滿足以下條件:
(1)Canon 廠商 Application 必須存在於螢幕上,且不允許任何視窗遮蔽到
(2)我又必須隱藏Canon 廠商的Application
相互矛盾下,這就是我為什麼要雙螢幕顯卡 & 一母二公的線 & 一台螢幕
因為只有這樣,我才可以讓廠商的Application經由我的程式來啟動,並且將它存放在"第二個"虛擬螢幕上
當然硬體部分必須經過一些處理,這些不談
問題來了!
當經由我的程式呼叫Canon廠商的Application時,必須等待廠商這套軟體完全啟動後
才能經API的方式去設定它的顯示位置座標在第二個虛擬螢幕上
還沒執行到我的API程式碼片段時這段期間,會一小段時間秀在我真正的螢幕上(大約1秒)
請問有辦法讓它完全不會出現嗎??
我試過超多種方法了! 但是都不行!
請大家提供一些意見給我吧! 謝謝
g9412747
初階會員


發表:3
回覆:28
積分:36
註冊:2009-02-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-17 10:18:37 IP:59.120.xxx.xxx 訂閱
有人可以提供意見給我嗎?
這個問題簡單點來說
就是有沒有辦法在自己程式中開啟別人軟體
在別人軟體尚未啟動完成時,就讓這軟體的畫面秀在螢幕的另一側(倘若有雙螢幕)
SetWindowPos() 這個API我試過了,是無法達成我要的結果!
因為他造成的效果是,這軟體畫面會先出現在我的螢幕一, 過了短暫時間(約一秒),才顯示在我的螢幕二
我要做到的結果是避免掉出現在螢幕一的情況
請各位能否提供我一些意見,幫幫我一下! 謝謝
HikaruGo
中階會員


發表:22
回覆:69
積分:88
註冊:2007-12-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-17 13:53:08 IP:61.62.xxx.xxx 訂閱

簡單一點使用如下

如下application Host Otherapplicatoin
FLOW

1.CreateProcess
2.WaitForInputIdle
3.Windows.SetParent
4.ShowWindow

複雜一點可能要使用HOOK
g9412747
初階會員


發表:3
回覆:28
積分:36
註冊:2009-02-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-19 12:25:08 IP:59.120.xxx.xxx 訂閱
多謝 HikaruGo 兄的建議
Hook 的部分我會再去研究一下的!
希望能順利解決~
那麼此問題就結案吧! ^ ^
系統時間:2024-11-25 16:26:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!