Evenement nouveau disque amovible

cs_bolandfranck Messages postés 34 Date d'inscription lundi 15 janvier 2007 Statut Membre Dernière intervention 8 octobre 2009 - 25 sept. 2009 à 17:00
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 25 sept. 2009 à 23:49
Bonjour,

Pour un développement, j'aurai besoin d'afficher la liste des disques amovibles connectés à l'ordinateur.
Je voudrais ne pas avoir à cliquer sur un bouton pour rafraichir la liste. Je voudrais que le périphérique apparaisse dans la liste dès qu'il est connecté comme dans l'explorer windows.

Comment faire ? Existe t-il un événement en .net ou est ce possible d'en créer un qui remplirait cette fonctionnalitée ?

Merci

1 réponse

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
25 sept. 2009 à 23:49
Salut, je ne connais pas d'événement spécifique sous vb.net, regarde peut être au niveau des API.

Voici un code qui permet de scanner les diques de l'ordinateur toutes les x millisecondes via un timer, c'est en dépannage, c'est pas tip-top :

Public Class Form1

    Private _ListDrives As New List(Of String)
    Private _Initialized As Boolean

    Private Sub Timer_Scan_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_Scan.Tick
        Timer_Scan.Enabled = False
        For Each Drv As IO.DriveInfo In My.Computer.FileSystem.Drives
            If _Initialized Then

                If My.Computer.FileSystem.Drives.Count > _ListDrives.Count Then

                    For Each NewDrv As IO.DriveInfo In My.Computer.FileSystem.Drives

                        If Not _ListDrives.Contains(NewDrv.Name) Then
                            If NewDrv.DriveType = IO.DriveType.Removable Then
                                ShowNewDrv(NewDrv.Name)
                                _ListDrives.Add(NewDrv.Name)
                            Else
                                _ListDrives.Add(NewDrv.Name)
                            End If
                        End If
                    Next

                ElseIf My.Computer.FileSystem.Drives.Count < _ListDrives.Count Then
                    _ListDrives.Clear()
                    For Each NewDrv As IO.DriveInfo In My.Computer.FileSystem.Drives
                        _ListDrives.Add(NewDrv.Name)
                    Next
                End If

            Else
                _ListDrives.Add(Drv.Name)
            End If
        Next
        If Not _Initialized Then _Initialized = True
        Timer_Scan.Enabled = True
    End Sub

    Sub ShowNewDrv(ByVal Name As String)
        MsgBox(Name)
    End Sub
 
End Class


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Rejoignez-nous