Lister les ordinateurs présent sur votre domaine vb2005

Contenu du snippet

Liste les ordinateurs présent sur votre domaine
Retourne une list(Of String)
Donc vous faite MyCombobox.DataSource = ListeOrdiReseau()

Source / Exemple :


Module Reseau
    Private Declare Sub MessageBeep Lib "User32" (ByVal N As Integer)
    Private strCritere As String = Nothing

    Sub callBeepDll(ByVal n As Integer)
        Call MessageBeep(n)
    End Sub

    ''' <summary>
    ''' Retourne une liste des ordinateurs sur le reseau
    ''' </summary>
    ''' <returns>List(Of String)</returns>
    ''' <remarks></remarks>
Public Function ListeOrdiReseau() As List(Of String)
        Dim Proc As Process = New Process()
        Proc.StartInfo.FileName = "net.exe"
        Proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
        Proc.StartInfo.Arguments = "view"
        Proc.StartInfo.UseShellExecute = False
        Proc.StartInfo.RedirectStandardOutput = True
        Proc.StartInfo.StandardOutputEncoding = System.Text.Encoding.Default
        Proc.Start()

        Dim CurrentCoding As System.Text.Encoding = Proc.StandardOutput.CurrentEncoding
        Dim st As New IO.StreamReader(Proc.StandardOutput.BaseStream)
        Dim output As String = st.ReadToEnd
        Proc.WaitForExit()

        Dim strOut As New List(Of String)
        strOut.AddRange(output.Split(vbCrLf))
        Dim outStr As String = Nothing
        For Each myServ As String In strOut
            If myServ.StartsWith(ControlChars.Lf & "\\") Then
                myServ = Replace(Trim(myServ), ControlChars.Lf, "").Trim
                If myServ.IndexOf("  ") > 0 Then
                    outStr &= Strings.Left(myServ, myServ.LastIndexOf(" ")).Trim
                    If outStr.IndexOf("  ") > 0 Then 'Un 2ème passage si comprend une désignation
                        outStr = Strings.Left(outStr, outStr.LastIndexOf(" ")).Trim
                    End If
                ElseIf myServ.IndexOf("\\") <> -1 Then
                    outStr &= Strings.Left(myServ, myServ.LastIndexOf("") + 1).Trim
                Else
                    If Not IsNothing(outStr) Then
                        If outStr.IndexOf("  ") > 0 Then
                            outStr = Strings.Left(outStr, outStr.LastIndexOf(" ")).Trim
                        Else
                            outStr &= myServ
                        End If
                    End If
                 
                End If
            End If
        Next
        strOut.RemoveRange(0, strOut.Count)
        If Not IsNothing(outStr) Then strOut.AddRange(outStr.Split("\\"))
        '********** *****************************************************
        'Permet de chercher un critere en le passant à la function cherche si ca correspond il l'enleve du tableau
        strCritere = ""
        Dim match As New System.Predicate(Of String)(AddressOf Cherche)
        strOut.RemoveAll(match)
        '****************************************************************
        strOut.TrimExcess()
        callBeepDll(-1)
        Return strOut
    End Function

    Private Function Cherche(ByVal p As String) As Boolean
        If p = strCritere Then
            Return True
        Else
            Return False
        End If
    End Function
End Module

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.