c# winfrom 如何获取远程计算机的内存使用率和可用内存
											请教大侠们 c# winfrom 如何获取远程计算机的内存使用率和可用内存?如果还能获取远程计算机的CPU温度就更好了。 										
					
	 2012-12-19 15:05
	    2012-12-19 15:05
   
					
				
			 程序代码:
程序代码:using System;
using System.Collections.Generic;
using System.DirectoryServices;
using System.Management;
using System.Windows.Forms;
namespace RemoteCpuAndMore
{
    public partial class FormMain : Form
    {
        #region 构造函数
        
        public FormMain()
        {
            InitializeComponent();
            Init();
        }
        #endregion
        #region 控件事件
        void TvComputers_AfterSelect(object sender, TreeViewEventArgs e)
        {
            
            if (e.Node.Level == 0) return;
            try
            {
                var ms = new ManagementScope(string.Concat("\\\\", e.Node.Text, "\\root\\cimv2"),
                                             new ConnectionOptions
                                                 {
                                                     Username = "Administrator",
                                                     Password = "DoNotRememberThisPassword",
                                                     Authority = "ntlmdomain:DOMAIN"
                                                 });
                ms.Connect();
                var moc = (new ManagementObjectSearcher(ms, new ObjectQuery("select * from Win32_OperatingSystem"))).Get(); 
                foreach ( ManagementObject mo in moc )
                {
                    
                    var enumerator = mo.Properties.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        Lv.Items.Add(
                            new ListViewItem(new[]
                                                 {
                                                     enumerator.Current.Name,
                                                     enumerator.Current.Value == null
                                                         ? "null"
                                                         : enumerator.Current.Value.ToString()
                                                 }));
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        #endregion
        #region 私有方法
        private static IEnumerable<DirectoryEntry> GetComputers(string domainName)
        {
            var result = new List<DirectoryEntry>();
            var domain = new DirectoryEntry(string.Concat("WinNT://", domainName));
            foreach (DirectoryEntry child in domain.Children)
            {
                if (child.SchemaClassName != "Computer") continue;
                result.Add(child);
            }
            return result;
        }
        private static IEnumerable<DirectoryEntry> GetDomainDEs()
        {
            var result = new List<DirectoryEntry>();
            var nt = new DirectoryEntry("WinNT:");
            foreach (DirectoryEntry child in nt.Children)
            {
                if (child.SchemaClassName != "Domain") continue;
                result.Add(child);
            }
            return result;
        }
        private void Init()
        {
            TvComputers.AfterSelect += TvComputers_AfterSelect;
            var domainDEs = GetDomainDEs();
            foreach (var domainDE in domainDEs)
            {
                var domainNode = TvComputers.Nodes.Add(domainDE.Name);
                var computers = GetComputers(domainDE.Name);
                foreach (var computer in computers)
                    domainNode.Nodes.Add(computer.Name);
            }
        }
        #endregion
    }
}
										
					
	
 2012-12-19 22:42
	    2012-12-19 22:42
   2012-12-20 10:21
	    2012-12-20 10:21
   2012-12-20 15:09
	    2012-12-20 15:09
  


 太棒哦
太棒哦										
					
	 2016-05-13 11:11
	    2016-05-13 11:11