안녕하세요? 개박살입니다.
제가 힌트를 좀 드리자면.. (--) 답변이 아니라 죄송 ^^;
자 소스를 먼저 보시죠?
//-------------------------------------------------------------------------------------
TCHAR CapDeviceName[80];
TCHAR CapDeviceVersion[100];
DWORD CapIndex;
//[*] 캡쳐드라이버를 검색하여 연결
for(CapIndex = 0; CapIndex < 10; CapIndex++) {
if(capGetDriverDescription(CapIndex, (LPTSTR)CapDeviceName , sizeof(CapDeviceName )/sizeof(TCHAR),
(LPTSTR)CapDeviceVersion, sizeof(CapDeviceVersion)/sizeof(TCHAR))) {
if(!capDriverConnect(hwndCap, CapIndex)) {
Application->MessageBox("비디오캡쳐 드라이버 연결에 실패했습니다.", "에러", MB_OK|MB_ICONERROR);
return;
}
break;
}
}
//[*] 캡쳐드라이버를 검색실패
if(CapIndex >= 10) {
Application->MessageBox("비디오캡쳐 드라이버가 설치되지 않았습니다.", "에러", MB_OK|MB_ICONERROR);
return;
}
//-------------------------------------------------------------------------------------
이걸로 잘하면 될꺼같습니다. 제가 직접 해볼 시간이 ^^;;
보시면요 캡쳐장치는 윈도우에서 10개 까지 등록될수 있답니다. 그걸 10으로 검색을 하시면
capGetDriverDescription 라는 함수가 캡쳐장치의 이름과 버젼을 가지고 오는걸 볼수있답니다.
이걸 이용해서 캡쳐장치 리스트를 출력하는 화면을 만드세요~
그리고, 그걸 사용자가 선택하게 하면 그 인덱스로 Connect하면 되겟죠
글구 참고로, Capture장치를 리스트를 다이얼 로그로 띄워줄수도 있답니다. (기억이...)
암튼 VFW함수집합에서 본적이 있었는뎅..
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/mmfunc_7qy6.asp
여기서 찾아보시면 나올껍니다
그걸 이용하는 방법이 더나을수도 있겠네요 ~
그럼 참고하세요~~!!
잠온다 님이 쓰신 글 :
: 먼저 답변해 주신 방태윤님과 홍지곤님 정말 감사합니다...^^
:
: 그문제는 홍지곤님에 말씀데로 그냥 폼을 변형 했음다...(노.가..다..)
:
:
: 근데 다른 문제가..
:
: 제가 지금 vfw를 써서 화상을 받아 들이는 프로그램을 만드는중인데...
:
: 문제가 하나 있습니다...
:
:
: 비디오 드라이버에 있는 정보를 어떻게 가져오죠?
:
:
: 그러니까....
:
: AMCAP이라는 화상 프로그램 보신분 있나요?
:
: 거기 보면 drive메뉴에 현재 컴터에 있는 모든 비디오 장치 정보가 나옵니다..
:
: 거기메뉴 중에서 선택하면 해당 장치로 화상을 보여줍니다...
:
: 이걸 구현 할려구 했는데....맘대로 안되네요...ㅡㅡ;;;
:
:
: 제생각에는 capDriverConnect(hWndp, 0) 이 함수에서 뒤에 인덱스를 바꾸면 될줄알았음다..
:
: 근데 똑같은 캠 두개를 설치해놓았으면 말이 달라지더군요..
:
:
: 두서가 없이 말을 한거 같은데..
:
: AMCAP이라는 프로그램 같이...비쥬얼하게 모든 비디오 장치를 보여주면서 그중 하나를 선택하면
:
: 해당하는 장치로 화상을 보여주는 방법을 알고 싶습니다.
:
: 물론 vfw.h를 쓴걸루....ㅡㅡ;;;;(다이렉트는 좀....ㅡㅡ;;;)
:
:
: 답변 부탁드립니다....
:
:
:
:
:
:
:
:
: