public void GetCPUStaticInfo() { try { var mbo = new ManagementObjectSearcher("SELECT Name, NumberOfCores FROM Win32_Processor").Get(); CPUType = mbo.Cast <ManagementBaseObject>().Select(c => c["Name"].ToString()).FirstOrDefault(); CPUCoreCount = mbo.Cast <ManagementBaseObject>().Sum(x => int.Parse(x["NumberOfCores"].ToString())); } catch { CPUType = "Fail to get CPU Type"; CPUCoreCount = -1; } }
private Process FindGatewayProcess() { // It may be run by Java Process gatewayProcess = Process.GetProcessesByName("java").SingleOrDefault(x => !String.IsNullOrEmpty(x.MainWindowTitle) && (x.MainWindowTitle.ToLower().Contains("ib gateway") || x.MainWindowTitle.ToLower().Contains("ibgateway"))); // Or it runs by Java, but main window title is different if (gatewayProcess == null) { using (ManagementObjectCollection results = new ManagementObjectSearcher("SELECT * FROM Win32_Process WHERE Name = 'java.exe'").Get()) { ManagementObject managementObject = results.Cast <ManagementObject>().SingleOrDefault(x => x.Properties["CommandLine"].Value is string str && str != null && str.Contains("ibgateway")); if (managementObject != null) { gatewayProcess = Process.GetProcessById((int)(uint)managementObject["ProcessId"]); } } } // Or it may be run directly if (gatewayProcess == null) { gatewayProcess = Process.GetProcessesByName("ibgateway").SingleOrDefault(); } _____________________________________________________________________________Logger.Write(gatewayProcess == null ? "We didn't find gateway process" : $"We found a gateway process called '{gatewayProcess.ProcessName}' with window title '{gatewayProcess.MainWindowTitle}' which has started at {gatewayProcess.StartTime.ToUniversalTime()}"); return(gatewayProcess); }
public static bool PathIsFromVHD(string Location) { string root = Path.GetPathRoot(Location); if (root == null) { return(false); } var scope = new ManagementScope(@"root\cimv2"); scope.Connect(); var drives = new ManagementObjectSearcher(scope, new SelectQuery(DiskStrings.LogicalDisk, "DeviceID like '" + root.Substring(0, root.IndexOf(':')) + "'")).Get(); return (drives.Cast <ManagementObject>().Any( drive => drive.GetRelated(DiskStrings.DiskPartition).Cast <ManagementObject>().Any( part => part.GetRelated(DiskStrings.DiskDrive).Cast <ManagementObject>().Any( device => new ManagementObjectSearcher(GetScope(), new SelectQuery(DiskStrings.MountedStorage, "Lun=" + device["SCSILogicalUnit"] + " and PortNumber=" + device["SCSIPort"] + " and TargetID=" + device["SCSITargetID"])) .Get().Cast <ManagementObject>().Any())))); }
private string GetMemoryType() { const string RAM_MEMORY_TYPE = "MemoryType"; var mbo = new ManagementObjectSearcher($"SELECT {RAM_MEMORY_TYPE} FROM Win32_PhysicalMemory").Get(); switch (mbo.Cast <ManagementBaseObject>().Select(c => int.Parse(c[RAM_MEMORY_TYPE].ToString())).FirstOrDefault()) { case 1: return("Other"); case 2: return("DRAM"); case 3: return("Synchronous DRAM"); case 4: return("Cache DRAM"); case 5: return("EDO"); case 6: return("EDRAM"); case 7: return("VRAM"); case 8: return("SRAM"); case 9: return("RAM"); case 10: return("ROM"); case 11: return("Flash"); case 12: return("EEPROM"); case 13: return("FEPROM"); case 14: return("EPROM"); case 15: return("CDRAM"); case 16: return("3DRAM"); case 17: return("SDRAM"); case 18: return("SGRAM"); case 19: return("RDRAM"); case 20: return("DDR"); case 21: return("DDR2"); case 22: return("DDR2 FB-DIMM"); case 23: return("Undefined 23"); case 24: return("DDR3"); case 25: return("Undefined 25"); default: return("Unknown"); } }
private static IEnumerable <ManagementObject> GetProcessesRemote(string remoteMachineName, string whereClause) { var wmiScope = string.Format(@"\\{0}\root\cimv2", remoteMachineName); var childrenWmiQuery = string.Format(@"SELECT * FROM Win32_Process WHERE {0}", whereClause); var children = new ManagementObjectSearcher(wmiScope, childrenWmiQuery).Get(); return(children.Cast <ManagementObject>()); }
/// <summary> /// 使用 ManagementObjectSearcher 查询管理器调用WMI查询。 /// </summary> /// <typeparam name="T">结果类型。</typeparam> /// <param name="sql">查询语句。</param> /// <param name="callback">回调方法。</param> /// <returns>查询结果。</returns> private static IEnumerable <T> SelectManagementObject <T>(String sql, Func <ManagementObject, T> callback) { ManagementObjectCollection moc = new ManagementObjectSearcher(sql).Get(); if (moc == null) { return(new T[0]); } return(moc.Cast <ManagementObject>().Select(x => callback(x))); }
private void funcPopulateOSes() { SelectQuery QueryOS = new SelectQuery("SELECT * FROM Win32_OperatingSystem"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryOS).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { OS temp = new OS(mo); listOS.Add(temp); }); }
public void funcPopulateSMBIOSes() { SelectQuery QuerySMBIOSes = new SelectQuery("SELECT * FROM Win32_SMBIOSMemory"); ManagementObjectCollection moc = new ManagementObjectSearcher(QuerySMBIOSes).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { SMBIOS temp = new SMBIOS(mo); listSMBIOS.Add(temp); }); }
public void funcPopulateMonitors() { SelectQuery QueryMONs = new SelectQuery("SELECT * FROM Win32_PnPEntity WHERE Service='monitor'"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryMONs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { PNPMonitor temp = new PNPMonitor(mo); listMons.Add(temp); }); }
public void SetPartitions() { ObjectQuery PartitionQuery = new ObjectQuery("SELECT * FROM Win32_DiskPartition"); ManagementObjectCollection moc = new ManagementObjectSearcher(PartitionQuery).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { DiskPartition newPart = new DiskPartition(mo); DPs.Add(newPart); }); }
public void funcPopulateTPs() { SelectQuery QueryTPs = new SelectQuery("SELECT * FROM Win32_TemperatureProbe"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryTPs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { ThermalProbe temp = new ThermalProbe(mo); listTP.Add(temp); }); }
public void funcPopulateGPUs() { SelectQuery QueryGPUs = new SelectQuery("SELECT * FROM Win32_VideoController"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryGPUs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { GPU temp = new GPU(mo); listGPU.Add(temp); }); }
public void funcPopulateSoundDevices() { SelectQuery QuerySDs = new SelectQuery("SELECT * FROM Win32_SoundDevice"); ManagementObjectCollection moc = new ManagementObjectSearcher(QuerySDs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { SoundDevice temp = new SoundDevice(mo); listSD.Add(temp); }); }
public void funcPopulateMB() { SelectQuery QueryMBs = new SelectQuery("SELECT * FROM Win32_BaseBoard"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryMBs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { Motherboard temp = new Motherboard(mo); mb = temp; }); }
//Set to public so it can be handled in a background worker thread //controlled by GUI. Will hang the UI for 1.5 seconds unless put //on a different thread. public void funcPopulateCPUs() { SelectQuery QueryCPUs = new SelectQuery("SELECT * FROM Win32_Processor"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryCPUs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { CPU temp = new CPU(mo); listCPU.Add(temp); }); }
private void funcPopulateDSKDRVs() { SelectQuery QueryDRVs = new SelectQuery("SELECT * FROM WIN32_DiskDrive"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryDRVs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { DSKDRV temp = new DSKDRV(mo); listDSKDRV.Add(temp); }); }
private void funcPopulateNICs() { SelectQuery QueryNICs = new SelectQuery("SELECT * FROM WIN32_NetworkAdapter"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryNICs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { NIC temp = new NIC(mo); listNIC.Add(temp); }); }
private void funcPopulateIRQs() { IRQTimer = Stopwatch.StartNew(); SelectQuery QueryIRQs = new SelectQuery("SELECT * FROM Win32_IRQResource"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryIRQs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { IRQs.Add(new IRQ(mo)); }); IRQTimer.Stop(); IRQElapsedTime = IRQTimer.ElapsedMilliseconds; }
private static MyProcessStartAnalytics GetProcessStartAnalyticsData() { MyProcessStartAnalytics data = new MyProcessStartAnalytics(); try { var cpus = new ManagementObjectSearcher("root\\CIMV2", "SELECT Name FROM Win32_Processor").Get(); // We're just reporting the first var cpuName = cpus.Cast <ManagementObject>().First()["Name"].ToString(); var memoryInfo = new WinApi.MEMORYSTATUSEX(); WinApi.GlobalMemoryStatusEx(memoryInfo); MyAdapterInfo gpu = MyVideoSettingsManager.Adapters[MyVideoSettingsManager.CurrentDeviceSettings.AdapterOrdinal]; var deviceName = gpu.Name; data.ProcessorCount = (byte)Environment.ProcessorCount; data.OsVersion = Environment.OSVersion.VersionString; data.CpuInfo = cpuName; data.OsPlatform = Environment.Is64BitOperatingSystem ? "64bit" : "32bit"; data.HasDX11 = MyDirectXHelper.IsDx11Supported(); data.GameVersion = MyFinalBuildConstants.APP_VERSION_STRING.ToString(); data.TotalPhysMemBytes = memoryInfo.ullTotalPhys; data.GpuInfo = new MyGraphicsInfo(); data.GpuInfo.AnisotropicFiltering = MyVideoSettingsManager.CurrentGraphicsSettings.Render.AnisotropicFiltering.ToString(); data.GpuInfo.AntialiasingMode = MyVideoSettingsManager.CurrentGraphicsSettings.Render.AntialiasingMode.ToString(); data.GpuInfo.FoliageDetails = MyVideoSettingsManager.CurrentGraphicsSettings.Render.FoliageDetails.ToString(); data.GpuInfo.ShadowQuality = MyVideoSettingsManager.CurrentGraphicsSettings.Render.ShadowQuality.ToString(); data.GpuInfo.TextureQuality = MyVideoSettingsManager.CurrentGraphicsSettings.Render.TextureQuality.ToString(); data.GpuInfo.VoxelQuality = MyVideoSettingsManager.CurrentGraphicsSettings.Render.VoxelQuality.ToString(); data.GpuInfo.GrassDensityFactor = MyVideoSettingsManager.CurrentGraphicsSettings.Render.GrassDensityFactor; data.GpuInfo.GPUModelName = gpu.DeviceName; data.GpuInfo.GPUMemory = gpu.VRAM; data.AudioInfo.MusicVolume = MySandboxGame.Config.MusicVolume; data.AudioInfo.SoundVolume = MySandboxGame.Config.GameVolume; data.AudioInfo.HudWarnings = MySandboxGame.Config.HudWarnings; data.AudioInfo.MuteWhenNotInFocus = MySandboxGame.Config.EnableMuteWhenNotInFocus; data.Fullscreen = MyVideoSettingsManager.CurrentDeviceSettings.WindowMode.ToString(); data.Resolution = MySandboxGame.Config.ScreenWidth.ToString() + " x " + MySandboxGame.Config.ScreenHeight.ToString(); } catch (Exception exception) { MyLog.Default.WriteLine(exception); } return(data); }
void OnProcessStarted(object sender, EventArrivedEventArgs e) { if (Visibility == Visibility.Visible || Process.GetCurrentProcess().Id == int.Parse(e.NewEvent.Properties["ParentProcessID"].Value.ToString()) || blacklist.Contains(e.NewEvent.Properties["ProcessName"].Value)) { return; } var itemName = (string)e.NewEvent.Properties["ProcessName"].Value; foreach (PropertyData w in e.NewEvent.Properties) { Console.WriteLine(w.Name + " = " + w.Value); } Process mProc = null; try { mProc = Process.GetProcessById(int.Parse(e.NewEvent.Properties["ProcessID"].Value.ToString())); ManagementObjectCollection j = new ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + mProc.Id).Get(); // https://stackoverflow.com/questions/2633628/can-i-get-command-line-arguments-of-other-processes-from-net-c file = j.Cast <ManagementBaseObject>().SingleOrDefault()?["CommandLine"]?.ToString(); mProc.Kill(); Dispatcher.BeginInvoke(new Action(() => { if (WpfAnimatedGif.ImageBehavior.GetIsAnimationLoaded(Clippy)) { var controller = WpfAnimatedGif.ImageBehavior.GetAnimationController(Clippy); controller.GotoFrame(0); controller.Play(); } Visibility = Visibility.Visible; HelpText.Text = "I noticed that you tried to run " + itemName + ". Would you like some help with that?"; })); } catch (Exception) { Console.WriteLine("..."); } }
//Populate temporary/miscellaneous system info till its ready //for an individual function. private void funcMisc() { SelectQuery QueryTOTMEM = new SelectQuery("SELECT * FROM Win32_ComputerSystem"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryTOTMEM).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { double memSize = 0; if (double.TryParse(mo["TotalPhysicalMemory"]?.ToString() ?? "", out memSize)) { //Convert from Bytes to Gigabytes memSize = memSize / 1041741824; TotalMemory = memSize.ToString("0.##") + " GB " + "(" + intMemModules + "x DIMM)"; } }); }
private void funcPopulateRAM() { SelectQuery QueryMEM = new SelectQuery("SELECT * FROM Win32_PhysicalMemory"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryMEM).Get(); intMemModules = 0; Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { MEM temp = new MEM(mo); listMEM.Add(temp); MemorySpeed = temp.MEMSpeed; intMemModules += 1; }); }
public static void Stop() { const string query = "SELECT ProcessId " + "FROM Win32_Process " + "WHERE Name = 'java.exe' " + "AND CommandLine LIKE '%fuseki-server.jar%'"; List <Process> servers = null; using (var results = new ManagementObjectSearcher(query).Get()) servers = results.Cast <ManagementObject>() .Select(mo => Process.GetProcessById((int)(uint)mo["ProcessId"])) .ToList(); foreach (var process in servers) { process.Kill(); } }
// Token: 0x060000BA RID: 186 RVA: 0x0000959C File Offset: 0x0000779C public Client(string def) { Class21.smethod_0(); base..ctor(); this.decorator = def; ManagementObjectCollection source = new ManagementObjectSearcher("select * from win32_networkadapter where Name='" + this.decorator + "'").Get(); this.m_Prototype = source.Cast <ManagementObject>().FirstOrDefault <ManagementObject>(); try { Match match = Regex.Match(this.m_Prototype.Path.RelativePath, "\\\"(\\d+)\\\"$"); this.database = int.Parse(match.Groups[1].Value); } catch { return; } this.rules = NetworkInterface.GetAllNetworkInterfaces().Where(new Func <NetworkInterface, bool>(this.ComputeWorker)).Select(new Func <NetworkInterface, string>(Client.StateToken._SchemaToken.PatchDescriptor)).FirstOrDefault <string>(); }
// Token: 0x060000BB RID: 187 RVA: 0x00006180 File Offset: 0x00004380 public fj(string aname) { this.fm = aname; ManagementObjectCollection source = new ManagementObjectSearcher("select * from win32_networkadapter where Name='" + this.fm + "'").Get(); this.fl = source.Cast <ManagementObject>().FirstOrDefault <ManagementObject>(); try { Match match = Regex.Match(this.fl.Path.RelativePath, "\\\"(\\d+)\\\"$"); this.fo = int.Parse(match.Groups[1].Value); } catch { return; } this.fn = (from i in NetworkInterface.GetAllNetworkInterfaces() where i.Description == this.fm select " (" + i.Name + ")").FirstOrDefault <string>(); }
public void SetMemoryConfig() { ObjectQuery MemConfigQuery = new ObjectQuery("SELECT * FROM Win32_OperatingSystem"); ManagementObjectCollection moc = new ManagementObjectSearcher(MemConfigQuery).Get(); intMemConfigLength = 0; Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { MemConfig.Add(Tools.convertToGBFromKB(mo["FreePhysicalMemory"]?.ToString() ?? null)); MemConfig.Add(Tools.convertToGBFromKB(mo["FreeVirtualMemory"]?.ToString() ?? null)); MemConfig.Add(Tools.convertToGBFromKB(mo["TotalVirtualMemorySize"]?.ToString() ?? null)); MemConfig.Add(Tools.convertToGBFromKB(mo["TotalVisibleMemorySize"]?.ToString() ?? null)); MemConfig.Add(Tools.convertToGBFromKB(mo["FreeSpaceInPagingFiles"]?.ToString() ?? null)); MemConfig.Add(Tools.convertToGBFromKB(mo["SizeStoredInPagingFiles"]?.ToString() ?? null)); MemConfig.Add(Tools.convertToGBFromKB(mo["MaxProcessMemorySize"]?.ToString() ?? null)); intMemConfigLength = 7; }); }
private void getInstalledDrivers() { SelectQuery QueryDrivers = new SelectQuery("SELECT * FROM Win32_SystemDriver"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryDrivers).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { Driver tempDriver = new Driver(mo); UnsortedList.Add(tempDriver); }); if (UnsortedList.Any()) { createSortedList(); if (SortedList.Any()) { createDataTable(); } } }
private static MyProcessStartAnalytics GetProcessStartAnalyticsData() { MyProcessStartAnalytics data = new MyProcessStartAnalytics(); var cpus = new ManagementObjectSearcher("root\\CIMV2", "SELECT Name FROM Win32_Processor").Get(); // We're just reporting the first var cpuName = cpus.Cast <ManagementObject>().First()["Name"].ToString(); var memoryInfo = new WinApi.MEMORYSTATUSEX(); WinApi.GlobalMemoryStatusEx(memoryInfo); var deviceName = MyVideoSettingsManager.Adapters[MyVideoSettingsManager.CurrentDeviceSettings.AdapterOrdinal] .Name; data.OsVersion = Environment.OSVersion.VersionString; data.CpuInfo = cpuName; data.GpuInfo = deviceName; data.GameVersion = MyFinalBuildConstants.APP_VERSION_STRING.ToString(); data.TotalPhysMemBytes = memoryInfo.ullTotalPhys; return(data); }
/// <summary> /// The get ip addresses. /// </summary> /// <returns> /// </returns> private List <string> GetIpAddresses() { var ips = new List <string>(); string query = "SELECT IPAddress from Win32_NetworkAdapterConfiguration WHERE IPEnabled=true"; ManagementObjectCollection mgtObjects = new ManagementObjectSearcher(query).Get(); foreach ( PropertyData ipaddr in mgtObjects.Cast <ManagementObject>().Select(mo => mo.Properties["IPAddress"]).Where(ipaddr => ipaddr.IsLocal)) { if (ipaddr.IsArray) { ips.AddRange((string[])ipaddr.Value); } else { ips.Add(ipaddr.Value.ToString()); } } return(ips); }
private void funcPopulateAccounts() { AccountTimer = Stopwatch.StartNew(); SelectQuery QueryACs = new SelectQuery("SELECT * FROM Win32_Account"); ManagementObjectCollection moc = new ManagementObjectSearcher(QueryACs).Get(); Parallel.ForEach(moc.Cast <ManagementObject>(), mo => { Account Account = new Account(mo); switch (Account.AccountType) { case "User": UserAccounts.Add(Account); break; case "Group": GroupAccounts.Add(Account); break; case "Domain": DomainAccounts.Add(Account); break; case "Alias": AliasAccounts.Add(Account); break; case "WellKnownGroup": WKGAccounts.Add(Account); break; case "DeletedAccount": DeletedAccounts.Add(Account); break; case "Invalid": InvalidAccounts.Add(Account); break; case "Unknown": UnknownAccounts.Add(Account); break; case "Computer": ComputerAccounts.Add(Account); break; default: break; } }); AccountTimer.Stop(); AccountElapsedTime = AccountTimer.ElapsedMilliseconds; }