C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[59300] Re:WM_DEVICECHANGE 관련 질문입니다.
Nibble [] 2426 읽음    2009-12-03 00:12
음, 제가 알기로 WM_DEVICECHANGE는 어떤 장치의 변화든 발생되지만,
DBT_DEVICEARRIVAL 이나 DBT_DEVICEREMOVECOMPLETE는 CD나 DVD같은 볼륨 장치나 미디어들에서만
전달되는 파라메터인데요,
일반적인 USB장치라면, 삽입되었는지 제거되었는지를 해당 장치와 별도로 통신포트를 열어보아서
정상적으로 열리느냐 아니느냐로 처리하셔야 할 것 같아요.
그니깐, WM_DEVICECHANGE가 발생할때만, USB 장치를 열어보는거죠.
성공하면 삽입된 상태로 변수 하나를 셋 하고,
또다시 WM_DEVICECHANGE가 발생했을때, USB 장치를 열어보아서
실패하면 REMOVE되었다고 인식하게 처리하셔야 할 것 같네요.

Jooni 님이 쓰신 글 :
: USB 장치 연결, 해제를 처리해야 될 일이 생겨서 검색을 해보니 메시지 맵을 만든후DBT를 이용하여 판단을 하더군요.
:
:     if ((UINT)msg.WParam == DBT_DEVICEARRIVAL) {
:         Memo1->Lines->Add("Catch Device Change, Connect");
:     } else if ((UINT)msg.WParam == DBT_DEVICEREMOVECOMPLETE) {
:         Memo1->Lines->Add("Catch Device Change, Disconnect");
:     }
:
: 정도의 소스 코드 였는데, 전 이상하게 USB 장, 탈착에 있어서 WM_DEVICECHANGE를 메시지맵으로 처리를 하면 WParam 값이 항상 7이며, LParam 값이 0입니다.
:
: 이상해서 Hi, Lo 나눠서 써보기도 했지만 항상 7이더군요. 검색해보니 저와 비슷한 증상을 겪은 분이 있던데 혹시 해결방법을 아시는분 계신지요?

+ -

관련 글 리스트
59291 WM_DEVICECHANGE 관련 질문입니다. Jooni 1406 2009/12/02
59300     Re:WM_DEVICECHANGE 관련 질문입니다. Nibble 2426 2009/12/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.