1

私はWindows用のWin32クラスを使用しており、Windowsベースのマシン用のインベントリプログラムをまとめています(明らかに)。

プログラムを介してシステム情報を収集し、その情報をテキストファイルにダンプする方法はありますか?

ハードウェア情報(MACアドレス、ハードドライブのサイズ、インストールされているRAM、OSのバージョンなど)を取得しようとしています。

前もって感謝します

4

3 に答える 3

2

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();
}
于 2013-02-12T22:46:23.393 に答える
1

この質問をしていただきありがとうございます。私は同じプロジェクトを行っていますが、これは非常に役に立ちました。

答えはまさに私が必要としていたものでした。

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);
于 2013-07-15T15:55:42.257 に答える
0

これには SystemInfo を使用できます。すべてに関する情報を提供するコマンドラインツールです。 http://technet.microsoft.com/en-us/library/bb491007.aspx

テキストファイルにダンプするには

C:\systeminfo >>C:\a.txt

これにより、情報を含むファイルが生成されます。

このコマンドを C# アプリケーションから呼び出す場合は、System.Diagnostic.Process を使用してプロセスを起動し、同じコマンドを実行すると、ファイルが生成されます。

于 2013-02-12T22:38:05.067 に答える