全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:950
推到 Plurk!
推到 Facebook!

如何得知 PCcamera 已拔除

尚未結案
bearmaster
一般會員


發表:36
回覆:45
積分:16
註冊:2004-05-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-06 12:14:50 IP:210.208.xxx.xxx 未訂閱
請教各位大大: 我已能將preview的影像正確的顯示在panel上, 但在preview時若拔除PCcamera 則程式會當掉, 我有試過Microsoft的AMCAP程式, 也是如此. 我想在程式中加入 Timer 來偵測, 但是不知道 該使用什麼function, 我有試過用 capGetStatus 但程式仍然會當掉, 仍然無法偵測到拔除.以下 是我的程式, 請各位大大幫幫忙. void __fastcall TForm1::FormCreate(TObject *Sender) { Form1->DoubleBuffered=true; hCapWnd = capCreateCaptureWindow("Cap Window", WS_CHILD | WS_VISIBLE, 0, 0, 640, 480, Form1->Panel2->Handle, 0 ); capDriverConnect( hCapWnd, 0); capOverlay(hCapWnd, true); capPreview(hCapWnd, true); capPreviewScale(hCapWnd,true); capPreviewRate(hCapWnd, 1000/30); capGetVideoFormat(hCapWnd, &bmi, sizeof(BITMAPINFO)); SetWindowPos(hCapWnd,0,0,0,640,480,0); Panel2->Visible=true; Timer1->Enabled=TRUE; } void __fastcall TForm1::Timer1Timer(TObject *Sender) { CAPSTATUS *capstatus= new CAPSTATUS; capGetStatus(hCapWnd , capstatus, sizeof(CAPSTATUS)); if(!capstatus->fLiveWindow) capDriverDisconnect(hCapWnd); if(!capstatus->fCapturingNow) capDriverDisconnect(hCapWnd); }
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-17 08:19:55 IP:211.76.xxx.xxx 未訂閱
請版主或副站刪除此篇。 如要回應,請到 ■【BCB】【問題】如何得知 PCcamera 已拔除 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=54318 to bearmaster, 請勿同文多Po 發表人 - dllee 於 2004/08/17 08:21:05
------
http://www.ViewMove.com
bearmaster
一般會員


發表:36
回覆:45
積分:16
註冊:2004-05-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-17 09:10:03 IP:210.208.xxx.xxx 未訂閱
感謝 dllee 版主回應, 小弟也不想同文多Po, 只是在別版沒有得到任何回應下, 才想說可能是主題與版別有些出入, 所以才在貴版放上相同文章. 若版主認為不妥, 麻煩請刪除它. 另外請教版主, 我有閱讀過版規說明, 我想這主題的內容應該沒有違反, 遲遲無人回應是因為我的敘述不夠清楚, 還是不會有這種問題發生, 或是...,請版主幫忙再給個回應.
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-17 09:25:18 IP:219.130.xxx.xxx 未訂閱
bearmaster:
請試試使用以下方式看可否抓到錯誤訊息再行處理!
.hpp
public:                // User declarations
  __fastcall TForm1(TComponent* Owner);
  void __fastcall HandleExceptions(TObject *Sender, Exception *E);
.cpp
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// 設定exception handler.自定義異常處理窗口
  Application->OnException = HandleExceptions;
}
void __fastcall TForm1::HandleExceptions(TObject *Sender, Exception *E)
{
  if (E->Message.Length())  {
    Screen->Cursor = crArrow;
    AnsiString errorstr="應用程序發生了錯誤.\n" E->Message;
    Application->MessageBox(errorstr.c_str(),"發生異常",MB_OK);
  }
}
請參考!
Andy Chang
------
Andy Chang
bearmaster
一般會員


發表:36
回覆:45
積分:16
註冊:2004-05-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-18 09:24:01 IP:210.208.xxx.xxx 未訂閱
Hi Andy: 謝謝您. 我將自定義異常處理窗口加到程式中, 但它仍然無法偵測到PCcam被拔除, 不過這方法卻解決了我其它的錯誤訊息問題. 所以我現在的做法已不去偵測了, 直接讓user將程式close後再將PCcam拔除, 關於偵測的問題我想還是得自己去了解. 真的很謝謝您!!!
系統時間:2024-04-29 8:14:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!