2 using System.Collections.Generic;
5 using System.Threading.Tasks;
6 using System.Diagnostics;
7 using System.Management;
14 public static class CPutSystemLog
16 delegate void SystemLogDelegate(System.Management.ManagementObject mo);
18 private static void TryPutSystemLog(string path, SystemLogDelegate fn)
20 System.Management.ManagementClass mc = new System.Management.ManagementClass(path);
21 System.Management.ManagementObjectCollection moc = mc.GetInstances();
24 foreach (System.Management.ManagementObject mo in moc)
31 // The Mono runtime doesn't implement everything
32 Trace.TraceInformation("{0}: {1}: {2}", path, e.GetType(), e.Message);
33 Console.Write("{0}: {1}: {2}\n", path, e.GetType(), e.Message);
39 public static void PutSystemLog()
41 TryPutSystemLog("Win32_Processor", (mo) => {
42 Trace.TraceInformation("-------------------------");
43 Trace.TraceInformation("CPU Information:");
44 //Trace.TraceInformation("DeviceID = {0}", mo["DeviceID"]);
45 Trace.TraceInformation("Name = {0}", mo["Name"]);
46 Trace.TraceInformation("MaxClockSpeed = {0}MHz", mo["MaxClockSpeed"]);
47 Trace.TraceInformation("L2CacheSize = {0}KB", mo["L2CacheSize"]);
48 Trace.TraceInformation("L3CacheSize = {0}KB", mo["L3CacheSize"]);
49 Trace.TraceInformation("NumberOfCores = {0}", mo["NumberOfCores"]);
50 Trace.TraceInformation("NumberOfLogicalProcessors = {0}", mo["NumberOfLogicalProcessors"]);
53 TryPutSystemLog("Win32_OperatingSystem", (mo) => {
54 Trace.TraceInformation("-------------------------");
55 Trace.TraceInformation("OS Information:");
56 //簡単な説明(Windows 8.1では「Microsoft Windows 8.1 Pro」等)
57 Trace.TraceInformation("OS: " + mo["Caption"]);
58 //バージョン(Windows 8.1では、「6.3.9600」)
59 Trace.TraceInformation("Version: " + mo["Version"]);
60 //ビルド番号(Windows 8.1では「9600」)
61 //Trace.TraceInformation( "BuildNumber: " + mo["BuildNumber"]);
63 //サービスパック(Windows 8.1ではNULL)
64 Trace.TraceInformation("CSDVersion (ServicePack): " + mo["CSDVersion"]);
66 Trace.TraceInformation("OSLanguage: " + mo["OSLanguage"]);
68 Trace.TraceInformation("OSArchitecture: " + mo["OSArchitecture"]);
70 //Trace.TraceInformation("TotalVisibleMemorySize = {0}", mo["TotalVisibleMemorySize"]);
73 Trace.TraceInformation("-------------------------");
74 Trace.TraceInformation("General Environment Information:");
75 //Trace.TraceInformation("OS Version: " + Environment.OSVersion); // fake version will be returned (due to the lack of manifest settings)
76 //Trace.TraceInformation("ProcessorCount: " + Environment.ProcessorCount.ToString());
77 Trace.TraceInformation("CLR Version: " + Environment.Version.ToString());
78 Trace.TraceInformation("SystemPageSize: " + Environment.SystemPageSize.ToString());
80 var cominfo = new Microsoft.VisualBasic.Devices.ComputerInfo();
81 Trace.TraceInformation("TotalPhysicalMemorySize: {0:F2}GB", (cominfo.TotalPhysicalMemory / 1024f / 1024f / 1024f));
82 Trace.TraceInformation("VirtialMemorySize: {0:F2}GB", (cominfo.TotalVirtualMemory / 1024f / 1024f / 1024f));
83 Trace.TraceInformation("FreePhysicalMemorySize: {0:F2}MB", (cominfo.AvailablePhysicalMemory / 1024f / 1024f));
84 Trace.TraceInformation("FreeVirtualMemorySize: {0:F2}MB", (cominfo.AvailableVirtualMemory / 1024f / 1024f));
85 //Trace.TraceInformation(cominfo.OSFullName + ", " + cominfo.OSPlatform + ", " + cominfo.OSVersion);
87 Trace.TraceInformation("-------------------------");
88 Trace.TraceInformation("Physical Memory Information:");
89 TryPutSystemLog("Win32_PhysicalMemory", (mo) => {
90 Trace.TraceInformation("Capacity: {0:F2}GB", (Convert.ToInt64(mo["Capacity"]) / 1024f / 1024f / 1024f));
93 TryPutSystemLog("Win32_DisplayControllerConfiguration", (mo) => {
94 Trace.TraceInformation("-------------------------");
95 Trace.TraceInformation("Display Adapter Information:");
96 Trace.TraceInformation("Name: " + mo["Name"]);
97 Trace.TraceInformation("VideoMode: " + mo["VideoMode"]);
98 Trace.TraceInformation("HorizontalResolution: " + mo["HorizontalResolution"]);
99 Trace.TraceInformation("VerticalResolution: " + mo["VerticalResolution"]);
100 Trace.TraceInformation("RefreshRate: " + mo["RefreshRate"]);
103 TryPutSystemLog("Win32_VideoController", (mo) => {
104 Trace.TraceInformation("-------------------------");
105 Trace.TraceInformation("Video Controller Information:");
106 Trace.TraceInformation("Description: " + mo["Description"]);
107 Trace.TraceInformation("AdapterRAM: {0}MB", (Convert.ToInt64(mo["AdapterRAM"]) / 1024f / 1024f));
108 Trace.TraceInformation("CapabilityDescriptions: " + mo["CapabilityDescriptions"]);
111 TryPutSystemLog("Win32_DesktopMonitor", (mo) => {
112 Trace.TraceInformation("-------------------------");
113 Trace.TraceInformation("Display Information:");
114 Trace.TraceInformation("Description: " + mo["Description"]);
115 Trace.TraceInformation("PixelsPerXLogicalInch: " + mo["PixelsPerXLogicalInch"]);
116 Trace.TraceInformation("PixelsPerYLogicalInch: " + mo["PixelsPerYLogicalInch"]);
117 Trace.TraceInformation("ScreenWidth: " + mo["ScreenWidth"]);
118 Trace.TraceInformation("ScreenHeight: " + mo["ScreenHeight"]);
121 TryPutSystemLog("Win32_SoundDevice", (mo) => {
122 Trace.TraceInformation("-------------------------");
123 Trace.TraceInformation("Audio Information:");
124 //Trace.TraceInformation("Caption: " + mo["Caption"]);
125 //Trace.TraceInformation("ProductName: " + mo["ProductName"]);
126 //Trace.TraceInformation("DMABufferSize: " + mo["DMABufferSize"]);
128 foreach (PropertyData property in mo.Properties)
130 Trace.TraceInformation("{0}:{1}", property.Name, property.Value);
134 Trace.TraceInformation("----------------------");
135 Trace.TraceInformation("DTXMania settings:");
136 Trace.TraceInformation("VSyncWait: " + CDTXMania.Instance.ConfigIni.bVSyncWait.ToString());
137 Trace.TraceInformation("Fullscreen: " + CDTXMania.Instance.ConfigIni.bFullScreen.ToString());
138 Trace.TraceInformation("----------------------");