WMIを使用してローカルディスク情報を取得する以下のコードがあります(学習している別のサイトから取得しました)。とにかく、私はすべてのラベルとコンビボックスを作成しましたが、コンビは正常に機能します。コンピューターにローカルディスクが表示されます。
ただし、選択したディスクのWMIから何かを取得して表示しようとすると、ラベルの横に何も表示されません。Powershellを使用してget-wmiobjectsを表示できるため、WMIは正常に機能し、持ち帰った2つのオブジェクトは、実際にはPowerShellを介して何かを表示します。このアプリケーションではありません。
何か案は?
namespace diskdrive_info
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//Get all the disk drives
ManagementObjectSearcher mosDisk = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
// Loop through each object (disk) retrieved by WMI
foreach (ManagementObject moDisk in mosDisk.Get())
{
cmbHdd.Items.Add(moDisk["Model"].ToString());
}
}
private void cmbHdd_SelectedIndexChanged(object sender,EventArgs e)
{
ManagementObjectSearcher mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Model = '" + cmbHdd.SelectedItem + "'");
foreach (ManagementObject moDisk in mosDisks.Get())
{
lblType.Text = "Type:" + moDisk["MediaType"].ToString();
lblModel.Text = "Model: " + moDisk["Model"].ToString();
}
}
}
}