private void button1_Click(object sender, EventArgs e)
        {
            int i = 0;
            
            DirectoryEntry root = new DirectoryEntry("WinNT:");
            MessageBox.Show(root.Name);
            DirectoryEntries domains = root.Children;
            domains.SchemaFilter.Add("domain");
            //MessageBox.Show(root.ToString());
            foreach (DirectoryEntry domain in domains)
            {
                DirectoryEntries computers = domain.Children;
                computers.SchemaFilter.Add( "computer" );
                foreach (DirectoryEntry computer in computers)
                {                    this.dataGridView1.Rows.Add();
                    this.dataGridView1.Rows[i].Cells[0].Value = i + 1;                    this.dataGridView1.Rows[i].Cells[1].Value = computer.Name.ToString();
                    IPHostEntry iphe = null;
                    try
                    {
                        iphe = Dns.GetHostEntry(computer.Name.ToString());
                        this.dataGridView1.Rows[i].Cells[2].Value = iphe.AddressList[0].ToString();
                        ipAddress = iphe.AddressList[0].ToString();
                        this.dataGridView1.Rows[i].Cells[3].Value = GetMacAddress();
                    }
                    catch
                    {
                        continue;
                    }
                    this.dataGridView1.Rows[i].Cells[4].Value = domain.Name.ToString();
                    i++;
                }
            }            /*
            for (int i = 0; i <= 5; i++)
            {
                this.dataGridView1.Rows.Add();
                this.dataGridView1.Rows[i].Cells[0].Value = 22;
            }
            */
        }
这个为什么执行不了?我弹出窗口也弹出不出来!请高手解答一下!谢谢!

解决方案 »

  1.   

    想要MAC地址,看下面...static void Main(string[] args)
            {
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection nics = mc.GetInstances();
                foreach (ManagementObject nic in nics)
                {
                    if (Convert.ToBoolean(nic["ipEnabled"]) == true)
                    {
                        Console.WriteLine((nic["MacAddress"].ToString()));
                        Console.WriteLine((nic["IPAddress"] as String[])[0]);
                        Console.WriteLine((nic["IPSubnet"] as String[])[0]);
                        Console.WriteLine((nic["DefaultIPGateway"] as String[])[0]);
                    }
                }            Console.ReadKey();
            }
      

  2.   

    DataGridView 的问题,你对 DataGridView 的操作错误。 
      

  3.   

      private void button1_Click(object sender, EventArgs e)
            {
                int i = 0;            DirectoryEntry root = new DirectoryEntry("WinNT:");
               
                DirectoryEntries domains = root.Children;
                domains.SchemaFilter.Add("domain");
                
                foreach (DirectoryEntry domain in domains)
                {
                    DirectoryEntries computers = domain.Children;
                    computers.SchemaFilter.Add("computer");
                    foreach (DirectoryEntry computer in computers)
                    {                    this.listBox1.Items.Add(computer.Name.ToString());
                       
                        IPHostEntry iphe = null;
                        try
                        {
                            iphe = Dns.GetHostEntry(computer.Name.ToString());
                            this.listBox2.Items.Add(iphe.AddressList[0].ToString()); 
                            string   ipAddress = iphe.AddressList[0].ToString();       
                             
                        }
                        catch
                        {
                            continue;
                        }
                        this.listBox3.Items.Add(domain.Name.ToString()); 
                        i++;
                    }
                }
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection nics = mc.GetInstances();            foreach (ManagementObject nic in nics)
                {
                    if (Convert.ToBoolean(nic["ipEnabled"]) == true)
                    {
                        this.listBox4.Items.Add(nic["MacAddress"].ToString());  
                       
                       
                    }
                }
            }       
      

  4.   

    谢谢高手,是datagridview操作的不对,但到底datagridview应该怎么操作呢?我现在可以获取了!
      

  5.   

    这个datagridview我也不是很熟悉,你百度一下吧
      

  6.   

    如下,使用datatable来当datagridview的数据源即可
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.DirectoryServices;
    using System.Net;namespace 获取IPMAC
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {            int i = 0;            DirectoryEntry root = new DirectoryEntry("WinNT:");
                MessageBox.Show(root.Name);
                DirectoryEntries domains = root.Children;
                domains.SchemaFilter.Add("domain");
                //MessageBox.Show(root.ToString());
                DataTable dt = new DataTable();
                dt.Columns.Add("A");
                dt.Columns.Add("B");
                dt.Columns.Add("C");
                dt.Columns.Add("D");
                dt.Columns.Add("E");
                foreach (DirectoryEntry domain in domains)
                {
                    DirectoryEntries computers = domain.Children;
                    computers.SchemaFilter.Add("computer");
                    foreach (DirectoryEntry computer in computers)
                    {
                        DataRow row = dt.NewRow();
                        row["A"] = i + 1;
                        //this.dataGridView1.Rows.Add();
                        //this.dataGridView1.Rows[i].Cells[0].Value ;
                        row["B"] = computer.Name.ToString();
                        //this.dataGridView1.Rows[i].Cells[1].Value = computer.Name.ToString();
                        IPHostEntry iphe = null;
                        string ipAddress = string.Empty;
                        try
                        {
                            iphe = Dns.GetHostEntry(computer.Name.ToString());
                            row["C"] = iphe.AddressList[0].ToString();
                            ipAddress = iphe.AddressList[0].ToString();
                            row["D"] = GetMacAddress();
                        }
                        catch
                        {
                            continue;
                        }
                        row["D"] = domain.Name.ToString();
                        dt.Rows.Add(row);
                        i++;
                    }
                }
                this.dataGridView1.DataSource = dt;
            }
        }
    }