私はWindows用のWin32クラスを使用しており、Windowsベースのマシン用のインベントリプログラムをまとめています(明らかに)。
プログラムを介してシステム情報を収集し、その情報をテキストファイルにダンプする方法はありますか?
ハードウェア情報(MACアドレス、ハードドライブのサイズ、インストールされているRAM、OSのバージョンなど)を取得しようとしています。
前もって感謝します
私はWindows用のWin32クラスを使用しており、Windowsベースのマシン用のインベントリプログラムをまとめています(明らかに)。
プログラムを介してシステム情報を収集し、その情報をテキストファイルにダンプする方法はありますか?
ハードウェア情報(MACアドレス、ハードドライブのサイズ、インストールされているRAM、OSのバージョンなど)を取得しようとしています。
前もって感謝します
Mac アドレスについては、System.Net.NetworkInformation.NetworkInterface クラスを使用して見つけることができます。
static string GetMacAddress()
{
string macAddresses = "";
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
// Find all ethernet MACs
if (nic.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
{
macAddresses += nic.GetPhysicalAddress().ToString();
}
}
return macAddresses;
}
プログラムで他のシステム仕様を見つけるには、以下のコードに似たものを使用できます。Environment クラスの MSDN ページにアクセスすると、より有用なシステム情報を見つけることができます。
public string SysInfo()
{
Stringbuilder systemInformation = new Stringbuilder(string.Empty);
systemInformation.AppendFormat("Operation System: {0}\n", Environment.OSVersion);
systemInformation.AppendFormat("ProcessorCount: {0}\n", Environment.ProcessorCount);
systemInformation.AppendFormat("SystemDirectory: {0}\n", Environment.SystemDirectory);
systemInformation.AppendFormat("UserDomainName: {0}\n", Environment.UserDomainName);
systemInformation.AppendFormat("UserName: {0}\n", Environment.UserName);
foreach (System.IO.DriveInfo drive in System.IO.DriveInfo.GetDrives())
{
// Get each drive
systemInformation.AppendFormat("\t Drive: {0}" +
"\n\t\t VolumeLabel: {1}" +
"\n\t\t DriveType: {2}" +
"\n\t\t DriveFormat: {3}" +
"\n\t\t TotalSize: {4}" +
"\n\t\t AvailableFreeSpace: {5}\n",
DriveInfo1.Name, DriveInfo1.VolumeLabel, DriveInfo1.DriveType,
DriveInfo1.DriveFormat, DriveInfo1.TotalSize, DriveInfo1.AvailableFreeSpace);
}
return systemInformation.ToString();
}
この質問をしていただきありがとうございます。私は同じプロジェクトを行っていますが、これは非常に役に立ちました。
答えはまさに私が必要としていたものでした。
SysInfo() 関数の winglerw28 のコード スニペットを編集することをお勧めします。
systemInformation.AppendFormat("\t Drive: {0}" +
"\n\t\t VolumeLabel: {1}" +
"\n\t\t DriveType: {2}" +
"\n\t\t DriveFormat: {3}" +
"\n\t\t TotalSize: {4}" +
"\n\t\t AvailableFreeSpace: {5}\n",
DriveInfo1.Name, DriveInfo1.VolumeLabel, DriveInfo1.DriveType,
DriveInfo1.DriveFormat, DriveInfo1.TotalSize, DriveInfo1.AvailableFreeSpace);
次のように、「DriveInfo1」参照をすべて「ドライブ」に変更する必要があると確信しています。
systemInformation.AppendFormat("\t Drive: {0}" +
"\n\t\t VolumeLabel: {1}" +
"\n\t\t DriveType: {2}" +
"\n\t\t DriveFormat: {3}" +
"\n\t\t TotalSize: {4}" +
"\n\t\t AvailableFreeSpace: {5}\n",
drive.Name, drive.VolumeLabel, drive.DriveType,
drive.DriveFormat, drive.TotalSize, drive.AvailableFreeSpace);
これには SystemInfo を使用できます。すべてに関する情報を提供するコマンドラインツールです。 http://technet.microsoft.com/en-us/library/bb491007.aspx
テキストファイルにダンプするには
C:\systeminfo >>C:\a.txt
これにより、情報を含むファイルが生成されます。
このコマンドを C# アプリケーションから呼び出す場合は、System.Diagnostic.Process を使用してプロセスを起動し、同じコマンドを実行すると、ファイルが生成されます。