2010-07-14 3 views
0

나는 지금 당장이 문제를 겪어 왔지만 지금 당장 해결해야만한다. Windows 7에서 장치가 시스템에 연결되어있을 때이를 탐지하려고하는데 wParam의 메시지는 항상 DBT_DEVNODES_CHANGED이지만 WM_DEVICECHANGE 메시지가 수신됩니다. 절대로 DBT_DEVICEARRIVAL 또는 DBT_DEVICEREMOVECOMPLETE. 나는 지금까지 아무런 운을 찾지 못했다. 그래서 나는 몇 시간 내에 뭔가를 발견하기 전에 누군가가 나를 올바른 방향으로 향하게되기를 바라고있다. :) 나중에 감사합니다.장치가 시스템에 추가 된시기를 감지하는 방법은 무엇입니까?

답변

1

설명서를 DBT_DEVICEARRIVAL 및 DBT_DEVICEREMOVECOMPLETE 이벤트는 기본적으로 받아야한다는 내용의. 응용 프로그램은 RegisterDeviceNotification 함수를 호출하여보다 자세한 이벤트를 수신하도록 등록 할 수 있습니다. 다행히도 앱을 등록한 후 필요한 이벤트를 수신하게되기를 바랍니다. 폐쇄시 UnregisterDeviceNotification에 반드시 전화하십시오.

RegisterDeviceNotification 참조 :

http://pinvoke.net/default.aspx/user32.RegisterDeviceNotification

UnregisterDeviceNotification 참조 :

http://msdn.microsoft.com/en-us/library/aa363475%28v=VS.85%29.aspx

,745,151

http://msdn.microsoft.com/en-us/library/aa363431%28v=VS.85%29.aspx

는 P/서명 호출

P/호출 서명 :

http://pinvoke.net/default.aspx/user32.UnregisterDeviceNotification

0

정말 감사합니다 플레처. 나는 Qt4에서 이것을하기 위해 노력했다. QT4은 (.6.3) 사용자는 정상으로 #include 파일을 추가 할 수 있지만, 당신은 당신의 .H 파일에 일부 #defines을 추가해야합니다

#define _WIN32_WINNT 0x0501 
#define _WIN32_WINDOWS 0x0501 
#define WINVER 0x0501 

그래서 DEV_BROADCAST_HEADER 같은 윈도우 데이터 유형을 인식 할 수있다. 또한 내가 생각하는 버전 번호는 Windows 플랫폼에 따라 다르지만 확실하지 않습니다 (저는 7 기압을 사용합니다). 또한 기본 위치에 설치된 경우 .pro 파일 LIBS += "C:\Qt\2010.04\mingw\lib\<library_file>"에 라이브러리를 추가하는 것을 잊지 마십시오.

관련 문제