Пример #1
0
        // Windowsの製品名を取得
        public static string GetOsVersion()
        {
            string OsVersion = null;

            ManagementClass objCS = new ManagementClass("Win32_OperatingSystem");
            ManagementObjectCollection objCol = objCS.GetInstances();

            foreach(ManagementObject objMgmt in objCol)
            {
                OsVersion = objMgmt["Caption"].ToString();
                objMgmt.Dispose();
            }

            objCol.Dispose();
            objCS.Dispose();

            if (System.Environment.Is64BitOperatingSystem)
            {
                return OsVersion + "(64bit)";
            }
            else
            {
                return OsVersion + "(32bit)";
            }
        }
Пример #2
0
        //public static (int major, int minor, int build) tpGetOSVersion()
        public static void tpGetOSVersion(out int major, out int minor, out int build)
        {
            //var result = (major: 0, minor: 0, build: 0);
            major = 0;
            minor = 0;
            build = 0;

            System.Management.ManagementClass mc =
                new System.Management.ManagementClass("Win32_OperatingSystem");
            System.Management.ManagementObjectCollection moc = mc.GetInstances();

            foreach (System.Management.ManagementObject mo in moc)
            {
                string   ver        = mo["Version"].ToString();
                string[] majorminor = ver.Split(new char[] { '.' }, StringSplitOptions.None);

                major = Convert.ToInt32(majorminor[0]);
                minor = Convert.ToInt32(majorminor[1]);
                build = Convert.ToInt32(mo["BuildNumber"]);

                break;                  // 1回ループで終了(でいいよね)
            }
            moc.Dispose();
            mc.Dispose();

            //return result;
        }
Пример #3
0
        private float GetMemory()
        {
            float capacity = 0;
            ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory");
            ManagementObjectCollection moc1 = cimobject1.GetInstances();

            foreach (ManagementObject mo1 in moc1)
            {
                capacity += (float)Convert.ToDouble(mo1.Properties["Capacity"].Value);
            }
            moc1.Dispose();
            cimobject1.Dispose();
            return capacity;
        }
Пример #4
0
 /// <summary>
 /// 获取硬盘ID
 /// </summary>
 /// <returns></returns>
 public static string getDiskDriveid()
 {
     //获取硬盘ID
     String HDid = "";
     ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
     ManagementObjectCollection moc1 = cimobject1.GetInstances();
     foreach (ManagementObject mo in moc1)
     {
         HDid = (string)mo.Properties["Model"].Value;
         break;
     }
     cimobject1.Dispose();
     moc1.Dispose();
     return HDid;
 }
Пример #5
0
 public static string GetCpuCore()
 {
     ManagementClass mc = new ManagementClass("Win32_Processor");
     ManagementObjectCollection cpus = mc.GetInstances();
     string count = null;
     string co = null;
     ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");
     foreach (ManagementObject mo in mySearch.Get())
     {
         count = mo.Properties["NumberOfCores"].Value.ToString();
     }
     mc.Dispose();
     mySearch.Dispose();
     return count;
 }
Пример #6
0
 /// <summary>
 /// 获取CPU的频率 这里之所以使用string类型的数组,主要是因为cpu的多核
 /// </summary>
 /// <returns></returns>
 public static string[] GetCpuMHZ()
 {
     ManagementClass mc = new ManagementClass("Win32_Processor");
     ManagementObjectCollection cpus = mc.GetInstances();
     string[] mHz = new string[cpus.Count];
     int c = 0;
     ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");
     foreach (ManagementObject mo in mySearch.Get())
     {
         mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString();
         c++;
     }
     mc.Dispose();
     mySearch.Dispose();
     return mHz;
 }
Пример #7
0
        public ManagementObject GetMetaInformation(string name)
        {
            ManagementObject value = null;
            ManagementScope scope = new ManagementScope(@"\\localhost");

            ManagementPath path = new ManagementPath(name);
            ManagementClass management = new ManagementClass(scope, path, null);

            foreach (ManagementObject child in management.GetInstances())
            {
                value = child;
                break;
            }
            management.Dispose();
            return value;
        }
Пример #8
0
        /// <summary>
        /// 获取物理内存大小
        /// </summary>
        /// <returns></returns>
        public static ulong GetPhysicalMemorySize()
        {
            ulong PhysicalMemorySize = 0, FreePhysicalMemory = 0;
            ManagementClass osClass = new ManagementClass("Win32_OperatingSystem");
            foreach (ManagementObject obj in osClass.GetInstances())
            {
                if (obj["TotalVisibleMemorySize"] != null)
                    PhysicalMemorySize = (ulong)obj["TotalVisibleMemorySize"];            

                if (obj["FreePhysicalMemory"] != null)
                    FreePhysicalMemory = (ulong)obj["FreePhysicalMemory"];
                break;
            }
            osClass.Dispose();
            return PhysicalMemorySize;

        } 
 /// <summary>
 /// 构造函数
 /// </summary>
 public sys_FrameWorkInfoTable()
 {
     
     ManagementClass mc = new ManagementClass("Win32_Processor");
     try
     {
         ManagementObjectCollection moc = mc.GetInstances();
         foreach (ManagementObject mo in moc)
         {
             _S_RegsionGUID = mo.Properties["ProcessorId"].Value.ToString();
             break;
         }
     }
     catch (Exception ex)
     {
         _S_RegsionGUID = Common.EnBase64(AppDomain.CurrentDomain.BaseDirectory);
         FileTxtLogs.WriteServiceLog(ex.ToString(), "LoadFrameWorkInfoTable");
     }
     finally {
         mc.Dispose();
     }
 }
Пример #10
0
        private void buttonAccept_Click(object sender, EventArgs e)
        {
            var dnsServer = CurrentDNSServer;
            var ni = CurrentInterface;
            if (dnsServer == null)
            {
                return;
            }
            if (ni == null)
            {
                return;
            }

            var wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");
            var moc = wmi.GetInstances();
            foreach (var o in moc)
            {
                var mo = (ManagementObject)o;
                //如果没有启用IP设置的网络设备则跳过
                if (ni.Id.Equals(mo["SettingId"]) == false)
                {
                    continue;
                }
                var inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
                inPar["DNSServerSearchOrder"] = new[]
                {
                    dnsServer.Server1, dnsServer.Server2
                };
                mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
                break;
            }

            wmi.Dispose();

            MessageBox.Show("设置DNS成功");
            LoadNI();
        }
        /// <summary>
        /// ���ر���Ĭ������
        /// </summary>
        /// <returns></returns>
        public static IPAddress GetDefaultGateWay()
        {
            string ip = "";
            try
            {
                ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                ManagementObjectCollection nics = mc.GetInstances();

                foreach (ManagementObject nic in nics)
                {
                    if (Convert.ToBoolean(nic["ipEnabled"]) == true)
                    {
                        //Console.WriteLine((nic["IPAddress"] as String[])[0]);
                        //Console.WriteLine((nic["IPSubnet"] as String[])[0]);
                        ip = (nic["DefaultIPGateway"] as String[])[0];
                    }

                }
                nics.Dispose();
                mc.Dispose();
            }
            catch { ip = "0.0.0.0"; }
            return IPAddress.Parse(ip);
        }
Пример #12
0
 private bool RunScheduleID(string triggerID, ManagementScope oMs)
 {
     try
     {
         ManagementClass cls = new ManagementClass(oMs.Path.Path, "SMS_Client", null);
         ManagementBaseObject inParams, outMPParams;
         inParams = cls.GetMethodParameters("TriggerSchedule");
         inParams["sScheduleID"] = triggerID;
         outMPParams = cls.InvokeMethod("TriggerSchedule", inParams, null);
         cls.Dispose();
         inParams.Dispose();
         outMPParams.Dispose();
         return true;
     }
     catch
     {
         return false;
     }
     finally
     {
         GC.Collect();
     }
 }
Пример #13
0
 /// <summary>
 /// Retrieve the CPU Type (Vendor + Model + Speed)
 /// </summary>
 /// <returns>A string containing the CPU Type</returns>
 private static string CPUType()
 {
     string retVal="";
     ManagementClass cim=new ManagementClass("Win32_Processor");
     ManagementObjectCollection moc=cim.GetInstances();
     foreach (ManagementObject mo in moc)
     {
         try
         {
             retVal=mo.Properties["Name"].Value.ToString();
             retVal+=" "+mo.Properties["CurrentClockSpeed"].Value.ToString()+"MHz";
         }
         catch(NullReferenceException)
         {
             continue;
         }
     }
     cim.Dispose();
     moc.Dispose();
     return retVal;
 }
        /// <summary>
        /// Creates the share.
        /// </summary>
        /// <param name="shareName">Name of the share.</param>
        /// <param name="folderPath">The folder path.</param>
        /// <returns>WindwsShare instance.</returns>
        public static WindowsShare CreateShare(string shareName, string folderPath)
        {
            ManagementClass shareClass = null;
            ManagementClass sd = null;
            ManagementBaseObject inParams = null;
            ManagementBaseObject outParams = null;

            try
            {
                sd = new ManagementClass(new ManagementPath("Win32_SecurityDescriptor"), null);

                sd["ControlFlags"] = 0x4;
                sd["DACL"] = new ManagementBaseObject[] { };

                shareClass = new ManagementClass("Win32_Share");

                inParams = shareClass.GetMethodParameters("Create");
                inParams["Name"] = shareName;
                inParams["Path"] = new DirectoryInfo(folderPath).FullName;
                //// inParams["Description"] = description;
                inParams["Type"] = 0x0;  // Type of Disk Drive
                inParams["Access"] = sd;

                outParams = shareClass.InvokeMethod("Create", inParams, null);

                if ((uint)outParams["ReturnValue"] != 0)
                {
                    throw new WindowsShareException("Unable to create share. Win32_Share.Create Error Code: " + outParams["ReturnValue"]);
                }
            }
            catch (Exception ex)
            {
                throw new WindowsShareException("Unable to create share", ex);
            }
            finally
            {
                if (shareClass != null)
                {
                    shareClass.Dispose();
                }

                if (inParams != null)
                {
                    inParams.Dispose();
                }

                if (outParams != null)
                {
                    outParams.Dispose();
                }

                if (sd != null)
                {
                    sd.Dispose();
                }
            }

            return new WindowsShare(shareName);
        }
        /// <summary>
        /// Adds the share permissions.
        /// </summary>
        /// <param name="accountName">Name of the account.</param>
        public void AddSharePermission(string accountName)
        {
            ManagementObject trustee = null;
            ManagementObject ace = null;
            ManagementObject win32LogicalSecuritySetting = null;
            ManagementObject share = null;
            ManagementBaseObject getSecurityDescriptorReturn = null;
            ManagementBaseObject securityDescriptor = null;

            try
            {
                //// Not necessary
                //// NTAccount ntAccount = new NTAccount(accountName);
                //// SecurityIdentifier sid = (SecurityIdentifier)ntAccount.Translate(typeof(SecurityIdentifier));
                //// byte[] sidArray = new byte[sid.BinaryLength];
                //// sid.GetBinaryForm(sidArray, 0);

                trustee = new ManagementClass(new ManagementPath("Win32_Trustee"), null);
                trustee["Name"] = accountName;
                //// trustee["SID"] = sidArray;

                ace = new ManagementClass(new ManagementPath("Win32_Ace"), null);
                //// Permissions mask http://msdn.microsoft.com/en-us/library/windows/desktop/aa394186(v=vs.85).aspx
                ace["AccessMask"] = 0x1F01FF;
                //// ace["AccessMask"] = 0x1FF;
                ace["AceFlags"] = 3;
                ace["AceType"] = 0;
                ace["Trustee"] = trustee;

                win32LogicalSecuritySetting = new ManagementObject(@"root\cimv2:Win32_LogicalShareSecuritySetting.Name='" + this.shareName + "'");

                getSecurityDescriptorReturn = win32LogicalSecuritySetting.InvokeMethod("GetSecurityDescriptor", null, null);

                if ((uint)getSecurityDescriptorReturn["ReturnValue"] != 0)
                {
                    throw new WindowsShareException("Unable to add share permission. Error Code: " + getSecurityDescriptorReturn["ReturnValue"]);
                }

                securityDescriptor = getSecurityDescriptorReturn["Descriptor"] as ManagementBaseObject;
                ManagementBaseObject[] dacl = securityDescriptor["DACL"] as ManagementBaseObject[];

                if (dacl == null)
                {
                    dacl = new ManagementBaseObject[] { ace };
                }
                else
                {
                    Array.Resize(ref dacl, dacl.Length + 1);
                    dacl[dacl.Length - 1] = ace;
                }

                securityDescriptor["DACL"] = dacl;

                share = new ManagementObject(@"root\cimv2:Win32_Share.Name='" + this.shareName + "'");
                uint setShareInfoReturn = (uint)share.InvokeMethod("SetShareInfo", new object[] { null, null, securityDescriptor });

                if (setShareInfoReturn != 0)
                {
                    throw new WindowsShareException("Unable to add share permission. Error code: " + setShareInfoReturn.ToString(CultureInfo.CurrentCulture));
                }
            }
            catch (Exception ex)
            {
                throw new WindowsShareException("Unable to add share permission", ex);
            }
            finally
            {
                if (trustee != null)
                {
                    trustee.Dispose();
                }

                if (ace != null)
                {
                    ace.Dispose();
                }

                if (win32LogicalSecuritySetting != null)
                {
                    win32LogicalSecuritySetting.Dispose();
                }

                if (getSecurityDescriptorReturn != null)
                {
                    getSecurityDescriptorReturn.Dispose();
                }

                if (securityDescriptor != null)
                {
                    securityDescriptor.Dispose();
                }

                if (share != null)
                {
                    share.Dispose();
                }
            }
        }
Пример #16
0
 private int __total()
 {
     //MB単位
     if(NWEnviroment.isWindows()){
         float total=0;
         ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
         ManagementObjectCollection moc = mc.GetInstances();
         foreach(ManagementObject mo in moc){
             total = (int.Parse (mo["TotalVisibleMemorySize"].ToString()) + int.Parse(mo["TotalVirtualMemorySize"].ToString()))/1000;
         }
         moc.Dispose();
         mc.Dispose();
         return (int)total;
     }else{
         string free =LinuxCommand.execute("free -m");
         using(StringReader sr = new StringReader(free)){
             string line = "";
             while((line=sr.ReadLine())!=null){
                 if(line.Contains("-/+")){
                     string[] parts = Regex.Split(line,@"\s+");
                     int total = int.Parse(parts[parts.Length-1])+int.Parse(parts[parts.Length-2]);
                     sr.Close();
                     sr.Dispose();
                     return total;
                 }
             }
         }
     }
     return 0;//TODO: Exception?
 }
Пример #17
0
        /// <summary>
        /// 获取系统物理内存大小
        /// </summary>
        /// <returns>系统物理内存大小,支持64bit,单位MB</returns>
        public static ulong GetMemory()
        {
            try
            {
                double capacity = 0.0;
                var cimobject1 = new ManagementClass("Win32_PhysicalMemory");
                ManagementObjectCollection moc1 = cimobject1.GetInstances();
                foreach (var o in moc1)
                {
                    var mo1 = (ManagementObject)o;
                    capacity += ((Math.Round(long.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024.0, 1)));
                }
                moc1.Dispose();
                cimobject1.Dispose();
                ulong qmem = Convert.ToUInt64(capacity.ToString(CultureInfo.InvariantCulture));
                return qmem;
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                Logger.error("Failed to get the physical memory");
                Logger.error(ex);
                return ulong.MaxValue;

            }
        }
Пример #18
0
        private void CreateRestorePoint()
        {
            ManagementClass WMIClass = null;
            try
            {
                ManagementScope scope = new ManagementScope(ComputerWMIHelper.WMI_Path_Default);
                scope.Connect();
                WMIClass = new ManagementClass(ComputerWMIHelper.WMI_Class_SystemRestore);
                WMIClass.Scope = scope;

                //create restore point
                ManagementBaseObject inParams = WMIClass.GetMethodParameters("CreateRestorePoint");
                object[] param = { Description, intRestorePoint, 100 }; // the event type will be always 100,Begin_System_Change
                ret = Convert.ToInt32(WMIClass.InvokeMethod("CreateRestorePoint", param), System.Globalization.CultureInfo.CurrentCulture);
            }
            catch (Exception ex)
            {
                // We catch all exceptions because we don't want the exception to be thrown from a separate worker thread
                exceptionfromnewthread = ex;
            }
            finally
            {
                if (WMIClass != null)
                {
                    WMIClass.Dispose();
                }
            }
        }
Пример #19
0
 /// <summary>
 /// Retrieves the total RAM size in MB
 /// </summary>
 /// <returns>An integer indicating the total RAM size in MB</returns>
 private static int MemorySize()
 {
     int retVal=0;
     ManagementClass cim=new ManagementClass("Win32_PhysicalMemory");
     ManagementObjectCollection moc=cim.GetInstances();
     foreach (ManagementObject mo in moc)
     {
         try
         {
             string size=mo.Properties["Capacity"].Value.ToString();
             retVal+=(int)(Convert.ToInt32(size)/1048576);
         }
         catch(NullReferenceException)
         {
             continue;
         }
     }
     cim.Dispose();
     moc.Dispose();
     return retVal;
 }
Пример #20
0
        private void loadconfig()
        {
            #region 旧的配置文件更新
            if (File.Exists("2dmmclauncher.cfg"))
            {
                StreamReader ocfg = new StreamReader("2dmmclauncher.cfg");
                string oname = ocfg.ReadLine();
                string ojavaxmx = ocfg.ReadLine();
                string ojavaw = ocfg.ReadLine();
                XmlDocument cfg = new XmlDocument();
                XmlDeclaration xmldecl;
                xmldecl = cfg.CreateXmlDeclaration("1.0", "utf-8", null);
                cfg.AppendChild(xmldecl);
                XmlElement cfgvalue = cfg.CreateElement("edmmc");
                cfg.AppendChild(cfgvalue);
                XmlNode cfgroot = cfg.SelectSingleNode("edmmc");
                XmlElement player = cfg.CreateElement("PlayerInfo");
                player.SetAttribute("playername", oname);
                cfgvalue.AppendChild(player);
                XmlElement JavaInfo = cfg.CreateElement("JavaInfo");
                JavaInfo.SetAttribute("javaxmx", ojavaxmx);
                JavaInfo.SetAttribute("javaw", ojavaw);
                cfgvalue.AppendChild(JavaInfo);
                cfg.AppendChild(cfgvalue);
                cfg.Save(cfgfile);
                ocfg.Close();
                File.Delete("2dmmclauncher.cfg");

            }
            #endregion
            if (File.Exists(cfgfile))
            {
                XmlDocument cfg = new XmlDocument();
                cfg.Load(cfgfile);
                XmlNode cfgroot = cfg.SelectSingleNode("edmmc");
                XmlElement playerinfo = (XmlElement)cfgroot.SelectSingleNode("PlayerInfo");
                playername = playerinfo.Attributes["playername"].Value;
                try
                {
                    gamemode = playerinfo.Attributes["gamemode"].Value;
                }
                catch (NullReferenceException)
                {
                    gamemode = "0";
                }
                XmlElement javainfo = (XmlElement)cfgroot.SelectSingleNode("JavaInfo");
                javaw = javainfo.Attributes["javaw"].Value;
                javaxmx=javainfo.Attributes["javaxmx"].Value;
            }
            else
            {
                playername = Interaction.InputBox("请输入用户名(仅影响单机模式,用于单机模式获取皮肤)", "用户名", "Player");  //c#没有inputbox,调用VB的inputbox
                XmlDocument cfg=new XmlDocument();
                XmlDeclaration xmldecl;
                xmldecl = cfg.CreateXmlDeclaration("1.0", "utf-8",null);
                cfg.AppendChild(xmldecl);
                XmlElement cfgvalue = cfg.CreateElement("edmmc");
                cfg.AppendChild(cfgvalue);
                XmlNode cfgroot = cfg.SelectSingleNode("edmmc");
                XmlElement player = cfg.CreateElement("PlayerInfo");
                player.SetAttribute("playername", playername);
                player.SetAttribute("gamemode", "0");
                cfgvalue.AppendChild(player);
                //获取系统物理内存大小,支持大于4G的内存
                double capacity = 0.0;
                ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory");
                ManagementObjectCollection moc1 = cimobject1.GetInstances();
                foreach (ManagementObject mo1 in moc1)
                {
                    capacity += ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024.0, 1)));
                }
                moc1.Dispose();
                cimobject1.Dispose();
                int qmem = Convert.ToUInt16(capacity.ToString()) / 4;
                if (qmem < 512)
                {
                    qmem = 512;
                }
                javaxmx = qmem.ToString ();
                //取四分之一在一些机器上会出现无法创建java虚拟机的情况,所以这里添加一个手动输入窗口
                string ijavaxmx = Interaction.InputBox("输入java运行内存大小,默认为四分之一物理内存,如果你对此不了解,直接按确定即可", "javaxmx", javaxmx);
                if (ijavaxmx != "" && ijavaxmx != null && Convert.ToInt32(ijavaxmx) != 0)
                {
                    javaxmx = ijavaxmx;
                }
                XmlElement JavaInfo = cfg.CreateElement("JavaInfo");
                //从注册表读取java安装信息,对于64位系统,只判断目录名里是否有x86字串
                JavaInfo.SetAttribute("javaxmx", javaxmx);
                {
                    try
                    {
                        RegistryKey lm = Registry.LocalMachine;
                        RegistryKey sf = lm.OpenSubKey("SOFTWARE");
                        RegistryKey js = sf.OpenSubKey("JavaSoft");
                        RegistryKey jre = js.OpenSubKey("Java Runtime Environment");
                        RegistryKey reg = Registry.LocalMachine;
                        reg = reg.OpenSubKey("SOFTWARE").OpenSubKey("JavaSoft").OpenSubKey("Java Runtime Environment");
                        bool flag = false;
                        bool maybe = false;
                        foreach (string ver in jre.GetSubKeyNames())
                        {
                            try
                            {
                                RegistryKey command = jre.OpenSubKey(ver);
                                string str = command.GetValue("JavaHome").ToString();
                                if (str != "")
                                {
                                    javaw = str + @"\bin\javaw.exe";
                                    if (File.Exists(javaw))
                                    {
                                        if (javaw.Contains("(x86)"))
                                        {
                                            flag = true;
                                            maybe = true;
                                        }
                                        else
                                        {
                                            flag = true;
                                            maybe = false;
                                            break;
                                        }
                                    }
                                }
                            }
                            catch { }

                        }
                        if (maybe)
                        {
                            if (MessageBox.Show("可能您使用的是64位系统,但是只找到了32位的java,是否要手动指定java路径?64位系统使用32位java可能会带来性能下降问题", "X64", MessageBoxButtons.OKCancel) == DialogResult.OK)
                            {
                                OpenFileDialog javawp = new OpenFileDialog();
                                javawp.Multiselect = false;
                                javawp.Title = "请选择javaw.exe";
                                javawp.Filter = "javaw.exe|javaw.exe";
                                if (javawp.ShowDialog() == DialogResult.OK)
                                {
                                    javaw = javawp.FileName;
                                }

                            }
                            flag = true;
                        }
                        if (!flag)
                        {
                            MessageBox.Show("获取javaw.exe目录失败,请手动查找");
                            OpenFileDialog javawp = new OpenFileDialog();
                            javawp.Multiselect = false;
                            javawp.Title = "请选择javaw.exe";
                            javawp.Filter = "javaw.exe|javaw.exe";
                            if (javawp.ShowDialog() == DialogResult.OK)
                            {
                                javaw = javawp.FileName;
                            }
                        }
                    }
                    catch
                    {
                        MessageBox.Show("获取javaw.exe目录失败,请手动查找");
                        OpenFileDialog javawp = new OpenFileDialog();
                        javawp.Multiselect = false;
                        javawp.Title = "请选择javaw.exe";
                        javawp.Filter = "javaw.exe|javaw.exe";
                        if (javawp.ShowDialog() == DialogResult.OK)
                        {
                            javaw = javawp.FileName;
                        }
                    }

                }
                JavaInfo.SetAttribute("javaw", javaw);
                cfgvalue.AppendChild(JavaInfo);
                cfg.AppendChild(cfgvalue);
                cfg.Save(cfgfile);
            }
        }
Пример #21
0
        /// <summary>
        /// 获取系统物理内存大小
        /// </summary>
        /// <returns>系统物理内存大小,支持64bit,单位MB</returns>
        public static ulong GetMemory()
        {
            try
            {
                var cimobject1 = new ManagementClass("Win32_PhysicalMemory");
                ManagementObjectCollection moc1 = cimobject1.GetInstances();
                double capacity = moc1.Cast<ManagementObject>().Sum(mo1 => ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString())/1024/1024.0, 1))));
                moc1.Dispose();
                cimobject1.Dispose();
                UInt64 qmem = Convert.ToUInt64(capacity.ToString(CultureInfo.InvariantCulture));
                return qmem;
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                Logger.Error("获取内存失败");
                Logger.Error(ex);
                return ulong.MaxValue;

            }
        }
Пример #22
0
        IDictionary<string, string> GetMacAndIP()
        {
            IDictionary<string, string> macip = new Dictionary<string,string>();
            ManagementClass mc = null;
            ManagementObjectCollection moc = null;
            try
            {
                //获取网卡硬件地址

                mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    if ((bool)mo["IPEnabled"] == true)
                    {
                        macip.Add(((System.Array)(mo.Properties["IpAddress"].Value)).GetValue(0).ToString(), mo["MacAddress"].ToString());
                        break;
                    }
                }
            }
            catch
            {

            }
            finally
            {
                if (!DME.Base.Helper.DME_Validation.IsNull(moc))
                {
                    moc.Dispose();
                }
                if (!DME.Base.Helper.DME_Validation.IsNull(mc))
                {
                    mc.Dispose();
                }
            }
            return macip;
        }
Пример #23
0
        IList<string> GetDiskID()
        {
            IList<string> HDid = new List<string>();
            ManagementClass mc = null;
            ManagementObjectCollection moc = null;
            try
            {
                //获取硬盘ID
                mc = new ManagementClass("Win32_DiskDrive");
                moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    HDid.Add(mo.Properties["Model"].Value.ToString());
                }
            }
            catch
            {

            }
            finally
            {
                if (!DME.Base.Helper.DME_Validation.IsNull(moc))
                {
                    moc.Dispose();
                }
                if (!DME.Base.Helper.DME_Validation.IsNull(mc))
                {
                    mc.Dispose();
                }
            }
            return HDid;
        }
Пример #24
0
 /// <summary>
 /// Retrieves the Internet Connection Speed as a <see cref="CWConnectionSpeed"/>
 /// enumeration member.
 /// </summary>
 /// <returns>A <see cref="CWConnectionSpeed"/> enumeration member indicating the
 /// system's internet connection speed.</returns>
 private static CWConnectionSpeed NetSpeed()
 {
     CWConnectionSpeed speed=CWConnectionSpeed.Unknown;
     int Kbps=0;
     ManagementClass cim=new ManagementClass("Win32_NetworkAdapter");
     ManagementObjectCollection moc=cim.GetInstances();
     foreach (ManagementObject mo in moc)
     {
         try
         {
             string bps=mo.Properties["MaxSpeed"].Value.ToString();
             Kbps=(int)(Convert.ToInt32(bps)/1024);
             if(Kbps>0) break;
         }
         catch(NullReferenceException)
         {
             continue;
         }
     }
     //clean-up memory
     cim.Dispose();
     moc.Dispose();
     //determine which enumeration value fits best
     if ((Kbps>0)&&(Kbps<=56))
         speed=CWConnectionSpeed.Modem56K;
     else if (Kbps==64)
         speed=CWConnectionSpeed.ISDN64K;
     else if(Kbps==128)
         speed=CWConnectionSpeed.ISDN128K;
     else if(Kbps==256)
         speed=CWConnectionSpeed.DSL256K;
     else if (Kbps==512)
         speed=CWConnectionSpeed.DSL512K;
     else if(Kbps==1024)
         speed=CWConnectionSpeed.DSL1M;
     else if((Kbps>1024)&&(Kbps<=1536))
         speed=CWConnectionSpeed.T1;
     else if ((Kbps>1536)&&(Kbps<=46080))
         speed=CWConnectionSpeed.T3;
     else if ((Kbps>46080)&&(Kbps<158720))
         speed=CWConnectionSpeed.Fiber;
     else if (Kbps==158720)
         speed=CWConnectionSpeed.ATM;
     else
         speed=CWConnectionSpeed.Unknown;
     return speed;
 }
Пример #25
0
        static void Main(string[] args)
        {
            /*获取进程信息*/
            //创建Win32_Process WMI类
            var mgrcls = new ManagementClass("Win32_Process");
            //枚举所有实例
            int numProc = 0;
            Console.WriteLine("-------------------------运行中的进程---------------------------------");
            foreach (ManagementObject mobj in mgrcls.GetInstances())
            {
                //准备参数,长度是2
                object[] pas = new object[2];
                mobj.InvokeMethod("GetOwner", pas);
                Console.WriteLine("{0}", mobj["name"]);
                numProc ++;
                //Console.WriteLine("{0} {1}\\{2}", mobj["name"], pas[1], pas[0]);
            }
            Console.WriteLine("---------进程数:{0}", numProc);
            Console.WriteLine("--------------------------任意键继续----------------------------------");
            Console.ReadKey(true);

            Console.WriteLine("-------------------------对应每个进程的大小---------------------------");
            ManagementClass cimobject3 = new ManagementClass("Win32_PerfFormattedData_PerfProc_Process");
            ManagementObjectCollection moc3 = cimobject3.GetInstances();
            foreach (ManagementObject mo3 in moc3)
            {
                object[] pas2 = new object[2];
                Console.WriteLine("{0}", mo3["PercentUserTime"]);
            }
            Console.WriteLine("--------------------------任意键继续----------------------------------");
            Console.ReadKey(true);

            Console.WriteLine("-------------------------系统内存监测---------------------------------");
            //获取总物理内存大小
            ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory");
            ManagementObjectCollection moc1 = cimobject1.GetInstances();
            foreach (ManagementObject mo1 in moc1)
            {
                capacity += ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024 / 1024.0, 1)));
            }
            moc1.Dispose();
            cimobject1.Dispose();

            //获取内存可用大小
            ManagementClass cimobject2 = new ManagementClass("Win32_PerfFormattedData_PerfOS_Memory");
            ManagementObjectCollection moc2 = cimobject2.GetInstances();
            foreach (ManagementObject mo2 in moc2)
            {
                available += ((Math.Round(Int64.Parse(mo2.Properties["AvailableMBytes"].Value.ToString()) / 1024.0, 1)));

            }
            moc2.Dispose();
            cimobject2.Dispose();
            Console.WriteLine("MemoryCapacity=" + capacity.ToString() + "G");
            Console.WriteLine("MemoryAvailable=" + available.ToString() + "G");
            Console.WriteLine("MemoryUsed=" + ((capacity - available)).ToString() + "G," + (Math.Round((capacity - available) / capacity * 100, 0)).ToString() + "%");
            Console.WriteLine("--------------------------任意键继续----------------------------------");
            Console.ReadKey(true);

            /*创建一个进程*/
            Console.WriteLine("即将打开记事本,按任意键打开");
            Console.ReadKey(true);
            ManagementClass mc = new ManagementClass("Win32_Process");//Get the object on which the method will be invoked
            ManagementBaseObject obj = mc.GetMethodParameters("Create"); //Get an input parameters object for this method
            //Console.WriteLine("input process name:");
            //char procName;
            //procName = (char)Console.Read();
            obj["CommandLine"] = "notepad.exe";//Fill in input parameter values
            ManagementBaseObject outParams = mc.InvokeMethod("Create", obj, null);//Execute the method
            //Display results
            //Note: The return code of the method is provided in the "returnvalue" property of the outParams object
            Console.WriteLine("Creation of calculator process returned: " + outParams["returnvalue"]);
            Console.WriteLine("Process ID: " + outParams["processId"]);
            Console.WriteLine("open success!");
            mc.Dispose();
            Console.WriteLine("--------------------------任意键继续----------------------------------");
            Console.ReadKey(true);

            /*终止一个进程*/
            /*
            ManagementObject service =
            new ManagementObject("win32_service='QQ'");
            InvokeMethodOptions options = new InvokeMethodOptions();
            options.Timeout = new TimeSpan(0, 0, 0, 5);
            outParams = service.InvokeMethod("StopService", null, options);
            Console.WriteLine("Return Status = " + outParams["Returnvalue"]);
            */

            Console.WriteLine("--------------------------监视进程操作---------------------------------");
            /*监视进程操作*/
            //创建WQL事件查询,用于实例创建
            var qCreate = new WqlEventQuery("__InstanceCreationEvent",
                TimeSpan.FromSeconds(1),  //WHTHIN = 1
                "TargetInstance ISA 'Win32_Process'");

            //创建WQL事件查询,用于实例删除
            var qDelete = new WqlEventQuery("__InstanceDeletionEvent",
                TimeSpan.FromSeconds(1),  //WHTHIN = 1
                "TargetInstance ISA 'Win32_Process'");

            //创建事件查询的侦听器(ManagementEventWatcher)
            var wCreate = new ManagementEventWatcher(qCreate);
            var wDelete = new ManagementEventWatcher(qDelete);

            //事件注册代码
            wCreate.EventArrived += (sender, e) =>
            {
                Console.WriteLine("运行:{0}", GetInfo(e.NewEvent));
            };

            wDelete.EventArrived += (sender, e) =>
            {
                Console.WriteLine("关闭:{0}", GetInfo(e.NewEvent));
            };
            //异步开始侦听
            wCreate.Start();
            wDelete.Start();
            Console.WriteLine("按任意键停止监控");
            Console.ReadKey(true);

            Console.WriteLine("--------------------获取操作系统序列号---------------------------------");
            string result = "";
            ManagementClass mClass = new ManagementClass("Win32_OperatingSystem");
            ManagementObjectCollection moCollection = mClass.GetInstances();
            foreach (ManagementObject mObject in moCollection)
            {
                result += mObject["SerialNumber"].ToString();
            }
            Console.WriteLine(result.ToString());
            Console.WriteLine("--------------------------任意键继续----------------------------------");
            Console.ReadKey(true);

            Console.WriteLine("--------------------获取所有硬盘的使用情况-----------------------------");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root/CIMV2", "SELECT * FROM Win32_LogicalDisk");

            moCollection = searcher.Get();
            string result2 = "";
            foreach (ManagementObject mObject in moCollection)
            {
                //mObject["DriveType"]共有6中可能值,分别代表如下意义:
                //1:No type   2:Floppy disk   3:Hard disk
                //4:Removable drive or network drive   5:CD-ROM   6:RAM disk
                //本处只列出固定驱动器(硬盘分区)的情况
                if (mObject["DriveType"].ToString() == "3")
                {
                    result2 += string.Format("Name={0},FileSystem={1},Size={2},FreeSpace={3}\n", mObject["Name"].ToString(),
                        mObject["FileSystem"].ToString(), mObject["Size"].ToString(), mObject["FreeSpace"].ToString());

                }
            }
            Console.WriteLine(result2.ToString());
            Console.WriteLine("--------------------------任意键继续----------------------------------");
            Console.ReadKey(true);

            Console.WriteLine("--------------------获取指定硬盘的使用情况----------------------------");
            ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
            disk.Get();
            Console.WriteLine("Logical Disk Size      = " + disk["Size"] + " bytes");
            Console.WriteLine("Logical Disk FreeSpace = " + disk["FreeSpace"] + " bytes");
            Console.WriteLine("--------------------------任意键继续----------------------------------");
            Console.ReadKey(true);
        }
Пример #26
0
        // ReSharper restore InconsistentNaming
        public Sysinfo()
        {
            var cimobject1 = new ManagementClass("Win32_PhysicalMemory");
            ManagementObjectCollection moc1 = cimobject1.GetInstances();
            double capacity = moc1.Cast<ManagementObject>().Sum(mo1 => ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString())/1024/1024.0, 1))));
            moc1.Dispose();
            cimobject1.Dispose();
            memory = capacity.ToString("f0")+"MB";

            try  //系统位数,系统名称
            {
                var searcher = new ManagementClass("WIN32_Processor");
                ManagementObjectCollection moc = searcher.GetInstances();
                foreach (var o in moc)
                {
                    var mo = (ManagementObject) o;
                    cpu = mo["Name"].ToString().Trim();
                    bit = mo["AddressWidth"].ToString().Trim() + "Bit";
                }
            }
            catch (Exception)
            { }

            try  //显卡, 支持多显卡
            {
                var searcher = new ManagementClass("Win32_VideoController");
                ManagementObjectCollection moc = searcher.GetInstances();
                foreach (var o in moc)
                {
                    var mo = (ManagementObject) o;
                    video += (mo["Name"].ToString().Trim()) + "\n";
                }
            }
            catch { }

            try  //系统版本
            {
                //ManagementClass searcher = new ManagementClass("Win32_OperatingSystem");
                //ManagementObjectCollection moc = searcher.GetInstances();
                //foreach (ManagementObject mo in moc)
                //{
                //    system += (mo["Name"].ToString().Trim()) + "\n";
                //    system += (mo["CSDVersion"].ToString().Trim()) + "\n";
                //    system += (mo["Version"].ToString().Trim()) + "\n";
                //}
                system = Environment.OSVersion.VersionString;
            }
            catch { }
        }
        /// <summary>
        /// This is the thread that pulls the HDD for activity and updates the notification icon
        /// </summary>
        public void HddActivityThread()
        {
            ManagementClass driveDataClass = new ManagementClass("Win32_PerfFormattedData_PerfDisk_PhysicalDisk");

            try
            {
                // Main loop where all the magic happens
                while (true)
                {
                    // Connect to the drive performance instance 
                    ManagementObjectCollection driveDataClassCollection = driveDataClass.GetInstances();
                    foreach( ManagementObject obj in driveDataClassCollection)
                    {
                        // Only process the _Total instance and ignore all the indevidual instances
                        if( obj["Name"].ToString() == "_Total")
                        {
                            if( Convert.ToUInt64(obj["DiskBytesPersec"]) > 0 )
                            {
                                // Show busy icon
                                hddNotifyIcon.Icon = busyIcon;
                            }
                            else
                            {
                                // Show idle icon
                                hddNotifyIcon.Icon = idleIcon;
                            }
                        }
                    }

                    // Sleep for 10th of millisecond 
                    Thread.Sleep(100);
                }
            } catch( ThreadAbortException tbe )
            {
                driveDataClass.Dispose();
                // Thead was aborted
            }
        }
Пример #28
0
        /// <summary>
        /// 操作系统的登录用户名
        /// </summary>
        /// <returns></returns>
        IList<string> GetUserName()
        {
            IList<string> st = new List<string>();
            ManagementClass mc = null;
            ManagementObjectCollection moc = null;
            try
            {

                mc = new ManagementClass("Win32_ComputerSystem");
                moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    st.Add(mo["UserName"].ToString());

                }
            }
            catch
            {

            }
            finally
            {
                if (!DME.Base.Helper.DME_Validation.IsNull(moc))
                {
                    moc.Dispose();
                }
                if (!DME.Base.Helper.DME_Validation.IsNull(mc))
                {
                    mc.Dispose();
                }
            }
            return st;
        }
Пример #29
0
        private void loadconfig()
        {
            #region 旧的配置文件更新
            if (File.Exists("2dmmclauncher.cfg"))
            {
                StreamReader ocfg = new StreamReader("2dmmclauncher.cfg");
                string oname = ocfg.ReadLine();
                string ojavaxmx = ocfg.ReadLine();
                string ojavaw = ocfg.ReadLine();
                XmlDocument cfg = new XmlDocument();
                XmlDeclaration xmldecl;
                xmldecl = cfg.CreateXmlDeclaration("1.0", "utf-8", null);
                cfg.AppendChild(xmldecl);
                XmlElement cfgvalue = cfg.CreateElement("edmmc");
                cfg.AppendChild(cfgvalue);
                XmlNode cfgroot = cfg.SelectSingleNode("edmmc");
                XmlElement player = cfg.CreateElement("PlayerInfo");
                player.SetAttribute("playername", oname);
                cfgvalue.AppendChild(player);
                XmlElement JavaInfo = cfg.CreateElement("JavaInfo");
                JavaInfo.SetAttribute("javaxmx", ojavaxmx);
                JavaInfo.SetAttribute("javaw", ojavaw);
                cfgvalue.AppendChild(JavaInfo);
                cfg.AppendChild(cfgvalue);
                cfg.Save(cfgfile);
                ocfg.Close();
                File.Delete("2dmmclauncher.cfg");

            }
            #endregion
            if (File.Exists(cfgfile))
            {
                XmlDocument cfg = new XmlDocument();
                cfg.Load(cfgfile);
                XmlNode cfgroot = cfg.SelectSingleNode("edmmc");
                XmlElement playerinfo = (XmlElement )cfgroot.SelectSingleNode("PlayerInfo");
                playername = playerinfo.Attributes["playername"].Value;
                XmlElement javainfo = (XmlElement)cfgroot.SelectSingleNode("JavaInfo");
                javaw = javainfo.Attributes["javaw"].Value;
                javaxmx=javainfo.Attributes["javaxmx"].Value;
            }
            else
            {
                playername = Interaction.InputBox("请输入用户名(仅影响单机模式,用于单机模式获取皮肤)", "用户名", "Player");
                XmlDocument cfg=new XmlDocument();
                XmlDeclaration xmldecl;
                xmldecl = cfg.CreateXmlDeclaration("1.0", "utf-8",null);
                cfg.AppendChild(xmldecl);
                XmlElement cfgvalue = cfg.CreateElement("edmmc");
                cfg.AppendChild(cfgvalue);
                XmlNode cfgroot = cfg.SelectSingleNode("edmmc");
                XmlElement player = cfg.CreateElement("PlayerInfo");
                player.SetAttribute("playername", playername);
                cfgvalue.AppendChild(player);
                double capacity = 0.0;
                ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory");
                ManagementObjectCollection moc1 = cimobject1.GetInstances();
                foreach (ManagementObject mo1 in moc1)
                {
                    capacity += ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024.0, 1)));
                }
                moc1.Dispose();
                cimobject1.Dispose();
                int qmem = Convert.ToUInt16(capacity.ToString()) / 4;
                if (qmem < 512)
                {
                    qmem = 512;
                }
                javaxmx = qmem.ToString ();
                XmlElement JavaInfo = cfg.CreateElement("JavaInfo");
                JavaInfo.SetAttribute("javaxmx", javaxmx);
                {
                    try
                    {

                        RegistryKey lm = Registry.LocalMachine;
                        RegistryKey sf = lm.OpenSubKey("SOFTWARE");
                        RegistryKey js = sf.OpenSubKey("JavaSoft");
                        RegistryKey jre = js.OpenSubKey("Java Runtime Environment");
                        RegistryKey reg = Registry.LocalMachine;
                        reg = reg.OpenSubKey("SOFTWARE").OpenSubKey("JavaSoft").OpenSubKey("Java Runtime Environment");

                        foreach (string ver in jre.GetSubKeyNames())
                        {
                            RegistryKey command = jre.OpenSubKey(ver);
                            string str = command.GetValue("JavaHome").ToString();
                            if (str != "")
                            {
                                javaw = str + @"\bin\javaw.exe";
                                break;
                            }
                        }
                    }
                    catch
                    {
                        MessageBox.Show("获取javaw.exe目录失败,请手动查找");
                        OpenFileDialog javawp = new OpenFileDialog();
                        javawp.Multiselect = false;
                        javawp.Title = "请选择javaw.exe";
                        javawp.Filter = "javaw.exe|javaw.exe";
                        if (javawp.ShowDialog() == DialogResult.OK)
                        {
                            javaw = javawp.FileName;
                        }
                    }

                }
                JavaInfo.SetAttribute("javaw", javaw);
                cfgvalue.AppendChild(JavaInfo);
                cfg.AppendChild(cfgvalue);
                cfg.Save(cfgfile);
            }
        }
Пример #30
0
 private void runState_Load(object sender, EventArgs e)
 {
     //读取java目录下的release文件获取java信息,本来是想用java -version的,但是无论如何也获取不到它的输出
     string verPath = Form1.launcher.StartInfo.FileName.Substring(0, Form1.launcher.StartInfo.FileName.IndexOf("bin"))+"RELEASE";
     try
     {
         StreamReader verp = new StreamReader(verPath);
         javaVersion.Text = verp.ReadToEnd();
         verp.Close();
         verp.Dispose();
     }
     catch
     {
         javaVersion.Text = "获取失败";
     }
     //物理内存大小,MB,支持64bit
     double capacity = 0.0;
         ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory");
         ManagementObjectCollection moc1 = cimobject1.GetInstances();
         foreach (ManagementObject mo1 in moc1)
         {
             capacity += ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024.0, 1)));
         }
         moc1.Dispose();
         cimobject1.Dispose();
         totmem = capacity;
     memLoad.Text = ((double)Form1.launcher.WorkingSet64 / 1024.0 / 1024.0).ToString("f") + "MB";
     memPresent.Text = ((double)f.getworkset() / 1024.0 / 1024.0 / totmem*100).ToString("f") + "%";
     runTime.Text = (DateTime.Now - Form1.launcher.StartTime).ToString();
     try  //本地和远程版本号
     {
         StreamReader ver = new StreamReader("ver.txt");
         currectVer.Text = ver.ReadLine();
         ver.Close();
         StreamReader cver = new StreamReader(".minecraft\\bin\\ver.txt");
         lastVer.Text = cver.ReadLine();
         cver.Close();
     }
     catch { }
     try  //系统位数,系统名称
     {
         ManagementClass searcher = new ManagementClass("WIN32_Processor");
         ManagementObjectCollection moc = searcher.GetInstances();
         hardWare.Text = "";
         foreach (ManagementObject mo in moc)
         {
             hardWare.Text += mo["Name"].ToString().Trim()+"\n";
             hardWare.Text += mo["AddressWidth"].ToString().Trim() + "Bit系统\n";
         }
     }
     catch { }
     try  //显卡, 支持多显卡
     {
         ManagementClass searcher = new ManagementClass("Win32_VideoController");
         ManagementObjectCollection moc = searcher.GetInstances();
         foreach (ManagementObject mo in moc)
         {
             hardWare.Text += (mo["Name"].ToString().Trim()) + "\n";
         }
     }
     catch { }
     hardWare.Text += (totmem).ToString()+"MB\n";
     try  //系统版本
     {
         ManagementClass searcher = new ManagementClass("Win32_OperatingSystem");
         ManagementObjectCollection moc = searcher.GetInstances();
         foreach (ManagementObject mo in moc)
         {
             hardWare.Text += (mo["Name"].ToString().Trim()) + "\n";
             hardWare.Text += (mo["CSDVersion"].ToString().Trim()) + "\n";
             hardWare.Text += (mo["Version"].ToString().Trim()) + "\n";
         }
     }
     catch { }
 }
Пример #31
0
        IList<string> GetCpuID()
        {
            IList<string> cpuInfo = new List<string>();//cpu序列号
            ManagementClass mc = null;
            ManagementObjectCollection moc = null;
            try
            {
                //获取CPU序列号代码s
                mc = new ManagementClass("Win32_Processor");
                moc = mc.GetInstances();
                foreach (ManagementObject mo in moc)
                {
                    cpuInfo.Add(mo.Properties["ProcessorId"].Value.ToString());
                }
            }
            catch
            {

            }
            finally
            {
                if (!DME.Base.Helper.DME_Validation.IsNull(moc))
                {
                    moc.Dispose();
                }
                if (!DME.Base.Helper.DME_Validation.IsNull(mc))
                {
                    mc.Dispose();
                }
            }
            return cpuInfo;
        }