- 27 Eki 2009
- 2,654
- 1
Merhaba arkadaşlar bu konumda sizde bilgisayara bağlanan taşınabilir aygıtı tespit etmeyi göstereceğim. Kodlar alıntıdır şimdiden belirteyim.
Normal bir form oluşturun ve herhangi bir nesne eklemeden direk olarak bu kodları giriniz.
Ardından herhangi bir USB'yi bilgisayara bağlayın...
Kodları biraz kurcalarsanız daha iyi şeyler ortaya çıkarabilirsiniz.
İyi günler dilerim...
Normal bir form oluşturun ve herhangi bir nesne eklemeden direk olarak bu kodları giriniz.
Kod:
Imports System.Runtime.InteropServices
Public Class Form1
Private Const WM_DEVICECHANGE As Integer = &H219
Private Const DBT_DEVICEARRIVAL As Integer = &H8000
Private Const DBT_DEVICEREMOVECOMPLETE As Integer = &H8004
Private Const DBT_DEVTYP_VOLUME As Integer = &H2 '
Private Structure DEV_BROADCAST_VOLUME
Dim Dbcv_Size As Integer
Dim Dbcv_Devicetype As Integer
Dim Dbcv_Reserved As Integer
Dim Dbcv_Unitmask As Integer
Dim Dbcv_Flags As Short
End Structure
Protected Overrides Sub WndProc(ByRef M As System.Windows.Forms.Message)
If M.Msg = WM_DEVICECHANGE Then
Select Case M.WParam
Case DBT_DEVICEARRIVAL
Dim DevType As Integer = Runtime.InteropServices.Marshal.ReadInt32(M.LParam, 4)
If DevType = DBT_DEVTYP_VOLUME Then
Dim Vol As New DEV_BROADCAST_VOLUME
Vol = Runtime.InteropServices.Marshal.PtrToStructure(M.LParam, GetType(DEV_BROADCAST_VOLUME))
If Vol.Dbcv_Flags = 0 Then
For i As Integer = 0 To 20
If Math.Pow(2, i) = Vol.Dbcv_Unitmask Then
Dim Usb As String = Chr(65 + i) + ":\"
MsgBox("Bir USB bağlandı gibi görünüyor!" & vbNewLine & vbNewLine & "Sürücü: " & Usb.ToString)
Exit For
End If
Next
End If
End If
Case DBT_DEVICEREMOVECOMPLETE
Dim DevType As Integer = Runtime.InteropServices.Marshal.ReadInt32(M.LParam, 4)
If DevType = DBT_DEVTYP_VOLUME Then
Dim Vol As New DEV_BROADCAST_VOLUME
Vol = Runtime.InteropServices.Marshal.PtrToStructure(M.LParam, GetType(DEV_BROADCAST_VOLUME))
If Vol.Dbcv_Flags = 0 Then
For i As Integer = 0 To 20
If Math.Pow(2, i) = Vol.Dbcv_Unitmask Then
Dim Usb As String = Chr(65 + i) + ":\"
MsgBox("Taşınabilir aygıt silindi gibi görünüyor!" & vbNewLine & vbNewLine & "Sürücü: " & Usb.ToString)
Exit For
End If
Next
End If
End If
End Select
End If
MyBase.WndProc(M)
End Sub
End Class
Kodları biraz kurcalarsanız daha iyi şeyler ortaya çıkarabilirsiniz.
İyi günler dilerim...