Click here to Skip to main content
15,887,256 members
Home / Discussions / Visual Basic
   

Visual Basic

 
GeneralRe: How to browse Active Directory from VB.Net Pin
®ol@nd18-Mar-07 2:07
®ol@nd18-Mar-07 2:07 
GeneralRe: How to browse Active Directory from VB.Net Pin
Mudsoad18-Mar-07 5:15
Mudsoad18-Mar-07 5:15 
GeneralRe: How to browse Active Directory from VB.Net Pin
Dave Kreskowiak18-Mar-07 5:47
mveDave Kreskowiak18-Mar-07 5:47 
GeneralRe: How to browse Active Directory from VB.Net Pin
®ol@nd18-Mar-07 8:47
®ol@nd18-Mar-07 8:47 
GeneralRe: How to browse Active Directory from VB.Net Pin
®ol@nd18-Mar-07 9:52
®ol@nd18-Mar-07 9:52 
GeneralRe: How to browse Active Directory from VB.Net [modified] Pin
Dave Kreskowiak18-Mar-07 11:54
mveDave Kreskowiak18-Mar-07 11:54 
GeneralRe: How to browse Active Directory from VB.Net Pin
®ol@nd25-Mar-07 7:23
®ol@nd25-Mar-07 7:23 
GeneralRe: How to browse Active Directory from VB.Net Pin
®ol@nd25-Mar-07 8:28
®ol@nd25-Mar-07 8:28 
I found the code below, but when putting this into a form, i get some errors.

The code i use:

Imports System.DirectoryServices<br />
Public Class Form1<br />
    Inherits System.Windows.Forms.Form<br />
    Private sRootDSE As String<br />
#Region " Windows Form Designer generated code "<br />
<br />
    Public Sub New()<br />
        MyBase.New()<br />
<br />
        'This call is required by the Windows Form Designer.<br />
        InitializeComponent()<br />
<br />
        'Add any initialization after the InitializeComponent() call<br />
        sRootDSE = GetRootDSE()<br />
    End Sub<br />
<br />
    'Form overrides dispose to clean up the component list.<br />
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)<br />
        If disposing Then<br />
            If Not (components Is Nothing) Then<br />
                components.Dispose()<br />
            End If<br />
        End If<br />
        MyBase.Dispose(disposing)<br />
    End Sub<br />
<br />
    'Required by the Windows Form Designer<br />
    Private components As System.ComponentModel.IContainer<br />
<br />
    'NOTE: The following procedure is required by the Windows Form Designer<br />
    'It can be modified using the Windows Form Designer.<br />
    'Do not modify it using the code editor.<br />
    Friend WithEvents TreeView1 As System.Windows.Forms.TreeView<br />
    Friend WithEvents ImageList1 As System.Windows.Forms.ImageList<br />
    <System.Diagnostics.DebuggerStepThrough()> Private Sub<br />
        InitializeComponent()<br />
        Me.components = New System.ComponentModel.Container<br />
        Dim resources As System.Resources.ResourceManager = New<br />
        System.Resources.ResourceManager(GetType(Form1))<br />
        Me.TreeView1 = New System.Windows.Forms.TreeView<br />
        Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)<br />
        Me.SuspendLayout()<br />
        '<br />
        'TreeView1<br />
        '<br />
        Me.TreeView1.ImageList = Me.ImageList1<br />
        Me.TreeView1.Location = New System.Drawing.Point(32, 24)<br />
        Me.TreeView1.Name = "TreeView1"<br />
        Me.TreeView1.Size = New System.Drawing.Size(240, 248)<br />
        Me.TreeView1.TabIndex = 0<br />
        '<br />
        'ImageList1<br />
        '<br />
        Me.ImageList1.ImageSize = New System.Drawing.Size(16, 16)<br />
        Me.ImageList1.ImageStream =<br />
        CType(resources.GetObject("ImageList1.ImageStream"),<br />
        System.Windows.Forms.ImageListStreamer)<br />
        Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent<br />
        '<br />
        'Form1<br />
        '<br />
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)<br />
        Me.ClientSize = New System.Drawing.Size(552, 302)<br />
        Me.Controls.Add(Me.TreeView1)<br />
        Me.Name = "Form1"<br />
        Me.Text = "Form1"<br />
        Me.ResumeLayout(False)<br />
<br />
    End Sub<br />
<br />
#End Region<br />
<br />
    Sub GetOU()<br />
<br />
        Dim root As New DirectoryEntry("LDAP://" & sRootDSE)<br />
<br />
        Dim searcher As New DirectorySearcher(root)<br />
<br />
        Dim s As SearchResult<br />
        Dim nodearr() As TreeNode<br />
        searcher.SearchScope = SearchScope.OneLevel<br />
        Dim I As Integer<br />
        Dim cp As IComparer<br />
        cp = New NodeComparer<br />
<br />
        ReDim nodearr(searcher.FindAll.Count - 1)<br />
<br />
        For Each s In searcher.FindAll<br />
            Dim no As New TreeNode(s.GetDirectoryEntry.Properties("Name").Value.ToString, GetObjectClass(s.GetDirectoryEntry.Properties("DistinguishedName").Value.ToString), GetObjectClass(s.GetDirectoryEntry.Properties("DistinguishedName").Value.ToString))<br />
            no.Tag = s.GetDirectoryEntry.Properties("DistinguishedName").Value.ToString()<br />
            nodearr(I) = no<br />
<br />
            I += 1<br />
        Next<br />
        Array.Sort(nodearr, cp)<br />
<br />
        Dim k As TreeNode<br />
<br />
        TreeView1.Nodes.AddRange(nodearr)<br />
<br />
    End Sub<br />
<br />
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load<br />
        GetOU()<br />
    End Sub<br />
<br />
    Private Sub TreeView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.DoubleClick<br />
<br />
        If TreeView1.SelectedNode.GetNodeCount(True) < 1 Then <br />
            Dim root As New DirectoryEntry("LDAP://" & TreeView1.SelectedNode.Tag.ToString)<br />
            Dim searcher As New DirectorySearcher(root)<br />
            Dim s As SearchResult<br />
            Dim nodearr As TreeNode()<br />
            searcher.SearchScope = SearchScope.OneLevel<br />
            Dim I As Integer<br />
            Dim cp As IComparer<br />
            cp = New NodeComparer<br />
<br />
            ReDim nodearr(searcher.FindAll.Count - 1)<br />
<br />
            For Each s In searcher.FindAll<br />
                Dim no As New TreeNode(s.GetDirectoryEntry.Properties("Name").Value.ToString, GetObjectClass(s.GetDirectoryEntry.Properties("DistinguishedName").Value.ToString), GetObjectClass(s.GetDirectoryEntry.Properties("DistinguishedName").Value.ToString))<br />
                no.Tag = s.GetDirectoryEntry.Properties("DistinguishedName").Value.ToString()<br />
                nodearr(I) = no<br />
                I += 1<br />
            Next<br />
            Array.Sort(nodearr, cp)<br />
            TreeView1.SelectedNode.Nodes.AddRange(nodearr)<br />
            TreeView1.SelectedNode.Expand()<br />
        End If<br />
<br />
    End Sub<br />
<br />
    Private Function GetRootDSE() As String<br />
<br />
        Dim RootEntry As New DirectoryEntry("LDAP://RootDSE")<br />
        Return RootEntry.Properties("DefaultNamingContext").Value.ToString<br />
        'Add error handling<br />
    End Function<br />
<br />
    Private Function GetObjectClass(ByVal DN As String) As Integer<br />
        Dim m As New DirectoryEntry("LDAP://" & DN)<br />
<br />
        Dim r As New DirectoryEntry(m.NativeObject.schema.ToString)<br />
<br />
        Select Case r.Name<br />
            Case "organizationalUnit"<br />
                Return 0<br />
            Case "computer"<br />
                Return 1<br />
            Case "user"<br />
                Return 2<br />
            Case Else<br />
                Return 0<br />
        End Select<br />
    End Function<br />
<br />
End Class<br />
Class NodeComparer<br />
    Implements IComparer 'Implement the IComparer Interface<br />
    Overloads Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare<br />
        Return CType(x, TreeNode).ImageIndex - CType(y, TreeNode).ImageIndex<br />
    End Function<br />
End Class


The errors i get at VB 2005 Express Edition:
Error 1 'Protected Overrides Sub Dispose(disposing As Boolean)' has multiple definitions with identical signatures. Line 7 Column 29

Error 2 'components' is already declared as 'Private Dim components As System.ComponentModel.IContainer' in this class. Line 28 Column 13

Error 3 'TreeView1' is already declared as 'Friend Dim WithEvents TreeView1 As System.Windows.Forms.TreeView' in this class. Line 33 Column 23

Error 4 Identifier expected. Line 35 Column 58

Warning 5 Unused local variable: 'k'. Line 97 Column 13

What is going wrong?

Roland
GeneralRe: How to browse Active Directory from VB.Net Pin
Dave Kreskowiak26-Mar-07 15:50
mveDave Kreskowiak26-Mar-07 15:50 
QuestionProblem - openning PDF file in visual basic Pin
mgbalaji17-Mar-07 2:47
mgbalaji17-Mar-07 2:47 
AnswerRe: Problem - openning PDF file in visual basic Pin
Christian Graus17-Mar-07 3:51
protectorChristian Graus17-Mar-07 3:51 
AnswerRe: Sunday dates only.......... Pin
kubben17-Mar-07 2:23
kubben17-Mar-07 2:23 
GeneralRe: Sunday dates only.......... Pin
Member 387988118-Mar-07 20:42
Member 387988118-Mar-07 20:42 
QuestionResize the form at runtime on click event of button Pin
Pushpa Setty17-Mar-07 1:34
Pushpa Setty17-Mar-07 1:34 
AnswerRe: Resize the form at runtime on click event of button Pin
Christian Graus17-Mar-07 3:55
protectorChristian Graus17-Mar-07 3:55 
QuestionEnter/Tab keys on DataGridView !! Pin
kindman_nb17-Mar-07 0:12
kindman_nb17-Mar-07 0:12 
AnswerRe: Enter/Tab keys on DataGridView !! Pin
Mudsoad17-Mar-07 8:20
Mudsoad17-Mar-07 8:20 
Questionhow to creat the object at runtime? Pin
Niraj Parikh16-Mar-07 22:35
Niraj Parikh16-Mar-07 22:35 
AnswerRe: how to creat the object at runtime? Pin
Christian Graus17-Mar-07 3:54
protectorChristian Graus17-Mar-07 3:54 
QuestionRe: how to creat the object at runtime? Pin
Niraj Parikh19-Mar-07 20:02
Niraj Parikh19-Mar-07 20:02 
Questionvb.net Pin
navyasri16-Mar-07 20:49
navyasri16-Mar-07 20:49 
AnswerRe: vb.net Pin
PlayByTheRules17-Mar-07 0:38
PlayByTheRules17-Mar-07 0:38 
AnswerRe: vb.net Pin
Christian Graus17-Mar-07 3:51
protectorChristian Graus17-Mar-07 3:51 
AnswerRe: vb.net Pin
Sujith C Jose17-Mar-07 5:15
Sujith C Jose17-Mar-07 5:15 
Questionadd flash obj in vb.net Pin
bhawna_k16-Mar-07 20:27
bhawna_k16-Mar-07 20:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.