using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Management;
using System.Threading;
namespace Sauron
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//while (true)
//{
InitForm();
// Thread.Sleep(1000);
//}
}
Thread t;
PerformanceCounter _memoryCounter = new PerformanceCounter();
PerformanceCounter _cpuCounter = new PerformanceCounter();
bool _compactFormat = true;
private void InitForm()
{
Console.WriteLine(GetProcessorData());
Console.WriteLine(GetMemoryPData());
//
// TODO: Add code to start application here
//
Console.WriteLine("Computer details retrieved using Windows Management Instrumentation (WMI)");
Console.WriteLine("Written 01/17/02 By John O'Donnell - csharpconsulting@hotmail.com");
Console.WriteLine("=========================================================================");
ManagementObjectSearcher query1 = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
ManagementObjectCollection queryCollection1 = query1.Get();
foreach (ManagementObject mo in queryCollection1)
{
Console.WriteLine("Name : " + mo["name"].ToString());
Console.WriteLine("Version : " + mo["version"].ToString());
Console.WriteLine("Manufacturer : " + mo["Manufacturer"].ToString());
Console.WriteLine("Computer Name : " + mo["csname"].ToString());
Console.WriteLine("Windows Directory : " + mo["WindowsDirectory"].ToString());
}
query1 = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem");
queryCollection1 = query1.Get();
foreach (ManagementObject mo in queryCollection1)
{
Console.WriteLine("Manufacturer : " + mo["manufacturer"].ToString());
Console.WriteLine("Model : " + mo["model"].ToString());
Console.WriteLine(mo["systemtype"].ToString());
Console.WriteLine("Total Physical Memory : " + mo["totalphysicalmemory"].ToString());
}
query1 = new ManagementObjectSearcher("SELECT * FROM Win32_processor");
queryCollection1 = query1.Get();
foreach (ManagementObject mo in queryCollection1)
{
Console.WriteLine(mo["caption"].ToString());
}
query1 = new ManagementObjectSearcher("SELECT * FROM Win32_bios");
queryCollection1 = query1.Get();
foreach (ManagementObject mo in queryCollection1)
{
Console.WriteLine(mo["version"].ToString());
}
object device, space, totalspace;
ManagementObjectSearcher objCS = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");
foreach (ManagementObject objMgmt in objCS.Get())
{
device = objMgmt["DeviceID"]; // C:
if (null != device)
{
space = objMgmt["FreeSpace"]; // C:10.32 GB, D:5.87GB
totalspace = objMgmt["Size"]; // C:10.32 GB, D:5.87GB
if (null != space)
{
//diskSpace += device.ToString() + " : " + space.ToString() + ", ";
Console.WriteLine(device.ToString() + " : " + space.ToString() + " / " + totalspace.ToString());
}
}
}
//diskSpace = diskSpace.Substring(0, diskSpace.Length - 2);
//query1 = new ManagementObjectSearcher("SELECT * FROM Win32_timezone");
//queryCollection1 = query1.Get();
//foreach (ManagementObject mo in queryCollection1)
//{
// Console.WriteLine(mo["caption"].ToString());
//}
}
public string GetProcessorData()
{
double d = GetCounterValue(_cpuCounter, "Processor", "% Processor Time", "_Total");
return _compactFormat ? (int)d + "%" : d.ToString("F") + "%";
}
double GetCounterValue(PerformanceCounter pc, string categoryName, string counterName, string instanceName)
{
pc.CategoryName = categoryName;
pc.CounterName = counterName;
pc.InstanceName = instanceName;
return pc.NextValue();
}
public string GetMemoryPData()
{
string s = QueryComputerSystem("totalphysicalmemory");
double totalphysicalmemory = Convert.ToDouble(s);
double d = GetCounterValue(_memoryCounter, "Memory", "Available Bytes", null);
d = totalphysicalmemory - d;
s = _compactFormat ? "%" : "% (" + FormatBytes(d) + " / " + FormatBytes(totalphysicalmemory) + ")";
d /= totalphysicalmemory;
d *= 100;
return _compactFormat ? (int)d + s : d.ToString("F") + s;
}
enum Unit { B, KB, MB, GB, ER }
public string FormatBytes(double bytes)
{
int unit = 0;
while (bytes > 1024)
{
bytes /= 1024;
++unit;
}
string s = _compactFormat ? ((int)bytes).ToString() : bytes.ToString("F") + " ";
return s + ((Unit)unit).ToString();
}
public string QueryComputerSystem(string type)
{
string str = null;
ManagementObjectSearcher objCS = new ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem");
foreach (ManagementObject objMgmt in objCS.Get())
{
str = objMgmt[type].ToString();
}
return str;
}
public string LogicalDisk()
{
string diskSpace = string.Empty;
//object device, space;
//ManagementObjectSearcher objCS = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");
//foreach (ManagementObject objMgmt in objCS.Get())
//{
// device = objMgmt["DeviceID"]; // C:
// if (null != device)
// {
// space = objMgmt["FreeSpace"]; // C:10.32 GB, D:5.87GB
// if (null != space)
// diskSpace += device.ToString() + FormatBytes(double.Parse(space.ToString())) + ", ";
// }
//}
//diskSpace = diskSpace.Substring(0, diskSpace.Length - 2);
return diskSpace;
}
}
}