Login Sign Up
꿈을꾸는개발자
개발자의 일기장
[정보] Visual C++, USB저장장치와 관련된 정보들

usb장치가 연결되었을때 발생하는  메세지
App에서 WM_DEVICECHANGE라는 메세지를 처리하시면 됩니다... ^^

레지스트리
HKEY_LOCAL_MACHINESYSTEMControlSet001ControlClass{36FC9E60-C465-11CF-8056-444553540000}
HKEY_LOCAL_MACHINESYSTEMControlSet001EnumUSBVid_0e51&Pid_05005&b114931&0&2
쪽을 보면 각 usb의 정보를 볼수있다.
단 이정보는 윈도우2000 Ad Server에서 찾은것이다.
98,me,XP는 잘 모르겠다.-_-;



WM_DEVICECHANGE 메시지는 받아들였구요...
DBT_DEVICEARRIVAL 메시지를 받아들이려고 하는데....

DBT_DEVICEARRIVAL는 어딜로 들어오나요?

-_-;;

 hHookUsb=SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)UsbFunc,hInstance,0);

 을 한 뒤에....

LRESULT CALLBACK UsbFunc (int nCode,WPARAM wParam,LPARAM lParam)
{
    MSG *msg;
    msg = (MSG*)lParam;

    if (msg->message == WM_DEVICECHANGE && msg->wParam == DBT_DEVICEARRIVAL)
    {    
        
        AfxMessageBox("들어왔군");
    }
    if (msg->message == WM_DEVICECHANGE && msg->lParam == DBT_DEVICEREMOVECOMPLETE)
    {
        AfxMessageBox("나갔군");
    }*/
    return CallNextHookEx((HHOOK) hHookUsb,(int) nCode,(WPARAM) wParam,(LPARAM) lParam);
}

하면 안되요....ㅠㅠ

DBT_DEVICEARRIVAL 는 어디서 봐야 하는지...-_-;;

wParam으로 들어온다고 들었던 것 같은데...

USB 장치에는 오토런 기능이 없는 것으로 알고 있습니다..
CD같은 경우는 되는데..

USB를 꽂았을때..
특정 프로그램을 실행 시키려면..

WM_DEVICECHANG 메세지를 이용하셔야 합니다..
USB 가 꽂이거나 빠질때.. 이 메세지가 발생 합니다..

이 메세지를 잡아서 처리해주여야 합니다..
DDK 예제 중에 이런 비슷한 것 있습니다..
참고하면 도움 될것입니다..

그럼~~


Write Reply

Diary List

꿈을꾸는개발자의 일기장 338 업무일지 27 자료모음.

History

Kishe.com Diary
Diary Top Community Top My Informaton