SysInfo_DeviceArrival 이벤트를 사용하여 USB 드라이브 삽입을 감지합니다. SysInfo_DeviceRemoveComplete이 제거되면 실행됩니다.
SysInfo 컨트롤에 대한 많은 이벤트가 있으므로 어떤 이벤트가 발생하는지 테스트 프로그램을 작성했습니다. 전에 사용하지 않은 컨트롤로 작업 할 때 자주이 작업을 수행합니다. SysInfoControl을 실행하는 프로그램은 아래에 포함되어 있습니다.
VB6 코드 편집 창의 맨 위에있는 드롭 다운 목록을 사용하여이 작업을 수행했습니다. 왼쪽에서 SysInfo 컨트롤을 선택하고 오른쪽에 표시된 각 이벤트를 선택하십시오. 각각에 Debug.Print 문을 추가하고 프로젝트를 실행 한 다음 USB 장치를 연결합니다.
또한 폼 디자이너에서 SysInfo 컨트롤을 선택한 다음 F1 키를 누르면 모든 이벤트에 대한 설명과 해당 매개 변수를 해석하는 방법을 포함하는 MSDN 라이브러리 도움말이 표시됩니다. 적어도 그것은 내 컴퓨터에서합니다. (사람들이 그렇게 말하면 싫지만 MSDN 문서는 별도로 설치해야하기 때문에 여기에 적용됩니다.)
그래도 작동하지 않으면 온라인에서 문서를 찾았습니다 here.
Option Explicit
Private Sub SysInfo_ConfigChangeCancelled()
Debug.Print Now() & ": " & "SysInfo_ConfigChangeCancelled"
End Sub
Private Sub SysInfo_ConfigChanged(ByVal OldConfigNum As Long, ByVal NewConfigNum As Long)
Debug.Print Now() & ": " & "SysInfo_ConfigChanged"
End Sub
Private Sub SysInfo_DeviceArrival(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
Debug.Print Now() & ": " & "SysInfo_DeviceArrival"
End Sub
Private Sub SysInfo_DeviceOtherEvent(ByVal DeviceType As Long, ByVal EventName As String, ByVal DataPointer As Long)
Debug.Print Now() & ": " & "SysInfo_DeviceOtherEvent"
End Sub
Private Sub SysInfo_DeviceQueryRemove(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long, Cancel As Boolean)
Debug.Print Now() & ": " & "SysInfo_DeviceQueryRemove"
End Sub
Private Sub SysInfo_DeviceQueryRemoveFailed(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
Debug.Print Now() & ": " & "SysInfo_DeviceQueryRemoveFailed"
End Sub
Private Sub SysInfo_DeviceRemoveComplete(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
Debug.Print Now() & ": " & "SysInfo_DeviceRemoveComplete"
End Sub
Private Sub SysInfo_DeviceRemovePending(ByVal DeviceType As Long, ByVal DeviceID As Long, ByVal DeviceName As String, ByVal DeviceData As Long)
Debug.Print Now() & ": " & "SysInfo_DeviceRemovePending"
End Sub
Private Sub SysInfo_DevModeChanged()
Debug.Print Now() & ": " & "SysInfo_DevModeChanged"
End Sub
Private Sub SysInfo_DisplayChanged()
Debug.Print Now() & ": " & "SysInfo_DisplayChanged"
End Sub
Private Sub SysInfo_PowerQuerySuspend(Cancel As Boolean)
Debug.Print Now() & ": " & "SysInfo_PowerQuerySuspend"
End Sub
Private Sub SysInfo_PowerResume()
Debug.Print Now() & ": " & "SysInfo_PowerResume"
End Sub
Private Sub SysInfo_PowerStatusChanged()
Debug.Print Now() & ": " & "SysInfo_PowerStatusChanged"
End Sub
Private Sub SysInfo_PowerSuspend()
Debug.Print Now() & ": " & "SysInfo_PowerSuspend"
End Sub
Private Sub SysInfo_QueryChangeConfig(Cancel As Boolean)
Debug.Print Now() & ": " & "SysInfo_QueryChangeConfig"
End Sub
Private Sub SysInfo_SettingChanged(ByVal Item As Integer)
Debug.Print Now() & ": " & "SysInfo_SettingChanged"
End Sub
Private Sub SysInfo_SysColorsChanged()
Debug.Print Now() & ": " & "SysInfo_SysColorsChanged"
End Sub
Private Sub SysInfo_TimeChanged()
Debug.Print Now() & ": " & "SysInfo_TimeChanged"
End Sub
이것은 트릭을 수행하는 것 같습니다. 도와 주셔서 감사합니다 – sparkdino