public static void LogEnvironmentInformation() { MySandboxGame.Log.WriteLine("MyVideoModeManager.LogEnvironmentInformation - START"); MySandboxGame.Log.IncreaseIndent(); try { ManagementObjectSearcher mosComputer = new System.Management.ManagementObjectSearcher("Select Manufacturer, Model from Win32_ComputerSystem"); if (mosComputer != null) { foreach (var item in mosComputer.Get()) { MySandboxGame.Log.WriteLine("Win32_ComputerSystem.Manufacturer: " + item["Manufacturer"]); MySandboxGame.Log.WriteLine("Win32_ComputerSystem.Model: " + item["Model"]); MySandboxGame.Log.WriteLine("Virtualized: " + IsVirtualized(item["Manufacturer"].ToString(), item["Model"].ToString())); } } ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT Name FROM Win32_Processor"); if (mos != null) { foreach (ManagementObject mo in mos.Get()) { MySandboxGame.Log.WriteLine("Environment.ProcessorName: " + mo["Name"]); } } // Get info about memory var memory = new WinApi.MEMORYSTATUSEX(); WinApi.GlobalMemoryStatusEx(memory); MySandboxGame.Log.WriteLine("ComputerInfo.TotalPhysicalMemory: " + MyValueFormatter.GetFormatedLong((long)memory.ullTotalPhys) + " bytes"); MySandboxGame.Log.WriteLine("ComputerInfo.TotalVirtualMemory: " + MyValueFormatter.GetFormatedLong((long)memory.ullTotalVirtual) + " bytes"); MySandboxGame.Log.WriteLine("ComputerInfo.AvailablePhysicalMemory: " + MyValueFormatter.GetFormatedLong((long)memory.ullAvailPhys) + " bytes"); MySandboxGame.Log.WriteLine("ComputerInfo.AvailableVirtualMemory: " + MyValueFormatter.GetFormatedLong((long)memory.ullAvailVirtual) + " bytes"); // Get info about hard drives ConnectionOptions oConn = new ConnectionOptions(); ManagementScope oMs = new ManagementScope("\\\\localhost", oConn); ObjectQuery oQuery = new ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3"); using (ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery)) { ManagementObjectCollection oReturnCollection = oSearcher.Get(); foreach (ManagementObject oReturn in oReturnCollection) { string capacity = MyValueFormatter.GetFormatedLong(Convert.ToInt64(oReturn["Size"])); string freeSpace = MyValueFormatter.GetFormatedLong(Convert.ToInt64(oReturn["FreeSpace"])); string name = oReturn["Name"].ToString(); MySandboxGame.Log.WriteLine("Drive " + name + " | Capacity: " + capacity + " bytes | Free space: " + freeSpace + " bytes"); } oReturnCollection.Dispose(); } } catch (Exception e) { MySandboxGame.Log.WriteLine("Error occured during enumerating environment information. Application is continuing. Exception: " + e.ToString()); } MySandboxGame.Log.DecreaseIndent(); MySandboxGame.Log.WriteLine("MyVideoModeManager.LogEnvironmentInformation - END"); }
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(); #if XB1 System.Diagnostics.Debug.Assert(false); #else // !XB1 var memoryInfo = new WinApi.MEMORYSTATUSEX(); WinApi.GlobalMemoryStatusEx(memoryInfo); #endif // !XB1 MyAdapterInfo gpu = MyVideoSettingsManager.Adapters[MyVideoSettingsManager.CurrentDeviceSettings.AdapterOrdinal]; var deviceName = gpu.Name; data.ProcessorCount = (byte)MyEnvironment.ProcessorCount; #if XB1 System.Diagnostics.Debug.Assert(false); #else // !XB1 data.OsVersion = Environment.OSVersion.VersionString; #endif // !XB1 data.CpuInfo = cpuName; #if XB1 System.Diagnostics.Debug.Assert(false); #else // !XB1 data.OsPlatform = Environment.Is64BitOperatingSystem ? "64bit" : "32bit"; #endif // !XB1 data.HasDX11 = MyDirectXHelper.IsDx11Supported(); data.GameVersion = MyFinalBuildConstants.APP_VERSION_STRING.ToString(); #if XB1 System.Diagnostics.Debug.Assert(false); #else // !XB1 data.TotalPhysMemBytes = memoryInfo.ullTotalPhys; #endif // !XB1 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); }