目的是我的程序只在现场的一台可以运行,换台就不行(取硬件信息的目的是 就算重做系统 也同样可以在那台机器运行)希望高手指点!!

解决方案 »

  1.   

    参考: /// <summary>
            /// 查询CPU编号
            /// </summary>
            /// <returns></returns>
            public string GetCPU_ID()
            {
                ManagementClass mClass = new ManagementClass("Win32_Processor");
                ManagementObjectCollection moc = mClass.GetInstances();
                string cpuId = null;
                foreach (ManagementObject mo in moc)
                {
                    cpuId = mo.Properties["ProcessorId"].Value.ToString();
                    break;
                }
                return cpuId;
            }        /// <summary>
            /// 获取MAC地址
            /// </summary>
            /// <returns></returns>
            public string GetNetCardMacAddress()
            {
                ManagementClass mc;
                ManagementObjectCollection moc;
                mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                moc = mc.GetInstances();
                string str = "";
                foreach (ManagementObject mo in moc)
                {
                    if ((bool)mo["IPEnabled"] == true)
                        str = mo["MacAddress"].ToString();            }
                return str;
            }
            /// <summary>
            /// 查询硬盘编号
            /// </summary>
            /// <returns></returns>
            public string GetMainHardDiskId()
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
                String hardDiskID = null;
                foreach (ManagementObject mo in searcher.Get())
                {
                    hardDiskID = mo["SerialNumber"].ToString().Trim();
                    break;
                }
                return hardDiskID;
            }        /// <summary>
            /// 获取Windows目录
            /// </summary>
            /// <returns></returns>
            public string GetWinDirectory()
            {
                StringBuilder sBuilder = new StringBuilder(CHAR_COUNT);
                GetWindowsDirectory(sBuilder, CHAR_COUNT);
                return sBuilder.ToString();
            }        /// <summary>
            /// 获取系统目录
            /// </summary>
            /// <returns></returns>
            public string GetSysDirectory()
            {
                StringBuilder sBuilder = new StringBuilder(CHAR_COUNT);
                GetSystemDirectory(sBuilder, CHAR_COUNT);
                return sBuilder.ToString();
            }        /// <summary>
            /// 获取CPU信息
            /// </summary>
            /// <returns></returns>
            public CpuInfo GetCpuInfo()
            {
                CpuInfo cpuInfo = new CpuInfo();
                GetSystemInfo(ref cpuInfo);
                return cpuInfo;
            }        /// <summary>
            /// 获取系统内存信息
            /// </summary>
            /// <returns></returns>
            public MemoryInfo GetMemoryInfo()
            {
                MemoryInfo memoryInfo = new MemoryInfo();
                GlobalMemoryStatus(ref memoryInfo);
                return memoryInfo;
            }        /// <summary>
            /// 获取系统时间信息
            /// </summary>
            /// <returns></returns>
            public SystemTimeInfo GetSystemTimeInfo()
            {
                SystemTimeInfo systemTimeInfo = new SystemTimeInfo();
                GetSystemTime(ref systemTimeInfo);
                return systemTimeInfo;
            }        /// <summary>
            /// 获取系统名称
            /// </summary>
            /// <returns></returns>
            public string GetOperationSystemInName()
            {
                OperatingSystem os = System.Environment.OSVersion;
                string osName = "UNKNOWN";
                switch (os.Platform)
                {
                    case PlatformID.Win32Windows:
                        switch (os.Version.Minor)
                        {
                            case 0:
                                osName = "Windows 95";
                                break;
                            case 10:
                                osName = "Windows 98";
                                break;
                            case 90:
                                osName = "Windows ME";
                                break;
                        }
                        break;
                    case PlatformID.Win32NT:
                        switch (os.Version.Major)
                        {
                            case 3:
                                osName = "Windws NT 3.51";
                                break;
                            case 4:
                                osName = "Windows NT 4";
                                break;
                            case 5:
                                if (os.Version.Minor == 0)
                                {
                                    osName = "Windows 2000";
                                }
                                else if (os.Version.Minor == 1)
                                {
                                    osName = "Windows XP";
                                }
                                else if (os.Version.Minor == 2)
                                {
                                    osName = "Windows Server 2003";
                                }
                                break;
                            case 6:
                                osName = "Longhorn";
                                break;
                        }
                        break;
                }
                return String.Format("{0},{1}", osName, os.Version.ToString());
            }
        }
      

  2.   

    WMI获取硬件信息
    http://www.codeproject.com/KB/vbscript/VvvHardwareInfo.aspx
      

  3.   

     1 楼 对于cpu 等信息的获取没有发完整, 这是参考连接:
    http://tech.ddvip.com/2008-11/122595279589626_3.html