Been working on a network pinger application much like SolarWinds/What's Up Gold.
A portion of code that may be useful is the loading AD into a tree:
Forgive the hasty code:
private void Connect()
{
try
{
Base = new DirectoryEntry("LDAP://" + this.connectionString);
if (Base != null)
{
treePing.Nodes.Clear();
treePing.BeginUpdate();
TreeNode childNode = treePing.Nodes.Add(Base.Name);
childNode.Tag = Base;
try
{
foreach (DirectoryEntry rootIter in Base.Children)
{
TreeNode RootNode = childNode.Nodes.Add(rootIter.Name);
RootNode.Tag = rootIter;
}
}
finally
{
childNode.Expand();
treePing.EndUpdate();
}
}
}
catch (Exception ex)
{
mnuNotify.ShowBalloonTip(5000, "NetPinger 2010", ex.Message, ToolTipIcon.Error);
Connect2();
}
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Nodes.Count == 0)
{
try
{
DirectoryEntry parent = (DirectoryEntry)e.Node.Tag;
if (parent != null)
{
if (parent.Children != null)
{
foreach (DirectoryEntry Iter in parent.Children)
{
TreeNode childNode = e.Node.Nodes.Add(Iter.Name);
childNode.Tag = Iter;
}
}
}
}
catch (System.Exception ex)
{
mnuNotify.ShowBalloonTip(5000,"NetPinger 2010",ex.Message,ToolTipIcon.Error);
}
//Fill the ListView Element
try
{
DirectoryEntry list = (DirectoryEntry)e.Node.Tag;
if (list != null)
{
ctr_list.Clear();
//Add some information to ListView ELement
ctr_list.Columns.Add("Attribute", 90, HorizontalAlignment.Left);
ctr_list.Columns.Add("Value", 350, HorizontalAlignment.Left);
foreach (object listIter in list.Properties.PropertyNames)
{
foreach (Object Iter in list.Properties[listIter.ToString()])
{
System.Windows.Forms.ListViewItem item =
new System.Windows.Forms.ListViewItem(listIter.ToString(), 0);
item.SubItems.Add(Iter.ToString());
ctr_list.Items.AddRange(new ListViewItem[] { item });
}
}
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
this.selectMe();
toolStripStatusLabel1.Text = treePing.SelectedNode.Text.Substring(3) + " Selected.";
}
}
No comments:
Post a Comment