// 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)"; } }
//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; }
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; }
/// <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; }
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; }
/// <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; }
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; }
/// <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(); } }
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); }
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(); } }
/// <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(); } } }
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? }
/// <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; } }
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(); } } }
/// <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; }
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); } }
/// <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; } }
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; }
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; }
/// <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; }
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); }
// 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 } }
/// <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; }
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); } }
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 { } }
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; }