2015년 4월 14일 화요일

VB6 USB 메모리 스틱 연결시 연결된 드라이브 찾기

프로그램이 실행되고 있는 도중에 USB 메모리 스틱을 연결하면 그 드라이브를 찾는 방법.


우선 이렇게 폼에 타이머를 놓는다.
USB 드라이브를 찾을수는 있지만, 연결 시점을 바로 알아차릴수는 없으므로, 주기적으로 연결여부를 체크해야 한다.


Option Explicit

Private Sub Form_Load()
    Label1.Caption = "USB 없음"
    Timer1.Enabled = True
    Timer1.Interval = 5000
End Sub

Private Sub Timer1_Timer()

    Dim FSO         As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
   
    Dim objDrive    As Object
    Dim strDrive    As String
    Dim boolUSB     As Boolean
       
    strDrive = ""
    boolUSB = False
   
    For Each objDrive In FSO.Drives
        If objDrive.DriveType = 1 Then
            If objDrive.ISREADY = True Then
                strDrive = objDrive.DriveLetter
                boolUSB = True
            End If
        End If
    Next
   
    If boolUSB = True Then
        Label1.Caption = "USB 가 " & strDrive & ": 드라이브로 연결되었습니다."
    Else
        Label1.Caption = "USB 없음"
    End If
   
End Sub

그리고 위와 같이 체크한다.
실질적으로는 빨간색 테두리 부분이 USB 드라이브 연결 여부를 체크하는 부분.

즉, objDrive.DriveType = 1 이면 USB 드라이브 이며.
objDrive.ISREADY = True 이면 해당 드라이브를 사용 할 수 있는 상태라는 것이다.

요걸 실행 시켜보면...


최초 실행시에는 이렇다가...


메모리 스틱을 연결하고 그것을 드라이브로 인식이 되면, 해당 드라이브의 드라이브 명을 찾아 온다.

일반적으로 메모리 스틱이나 외장형 하드 같은 USB 로 인식이 되는 드라이브는 다 찾아 낸다.
물론 이 소스는 여러개의 USB가 연결되는 경우는 고려하지 않은 소스이므로 필요하다면 좀더 수정을 해야 할 것이다.