|
해보지는 않았지만 다른 장치들이 체크 되는건 아닐까요?
DBT_DEVTYP_OEM = $00000000; // oem-defined device type
DBT_DEVTYP_DEVNODE = $00000001; // devnode number
DBT_DEVTYP_VOLUME = $00000002; // logical volume
DBT_DEVTYP_PORT = $00000003; // serial, parallel
DBT_DEVTYP_NET = $00000004; // network resource
DBT_DEVTYP_DEVICEINTERFACE = $00000005; // device interface class
DBT_DEVTYP_HANDLE = $00000006; // file system handle
초보남 님이 쓰신 글 :
: 안녕하세요
: 동작 중에 케이블이 빠질경우 아래와 같은 윈도우 메시지를 이용하여 comport를 제어할려 합니다.
: 그런데 케이블이 빠지거냐 연결될 경우 Message.WParam가 항상 0x07되네요 일단은 이벤트가 발생시
: 무조건 comport close되도록 아래와 소스와 같이 작업하였습니다.
:
: 여기서 문제가 발생되었는데 정상 통신 동작중에서 이벤트가 가끔씩 발생되어 이벤트가
: 발생(Message.WParam=> 0x07)되어 comport를 close하는 것입니다. 여기저기 아무리 찾아봐도 해결점이
: 안보이네요
:
: /////////////////////////////////////////////////////////////////////////////////
: void __fastcall TForm1::OnMessages(Messages::TMessage &Message)
: {
: switch(Message.Msg)
: {
: case WM_DEVICECHANGE:
: switch(Message.WParam)
: {
: case DBT_DEVICEARRIVAL :
: // CheckPort(); break;
: case DBT_DEVICEREMOVECOMPLETE :
: // ComPort1->Close(); break;
: }
: Serial1->Close();
: Connect->Click();
: Message.Result = true;
: break;
: default:
: TForm::WndProc(Message);
: }
: }
|