Я играю с WMI.Я пытаюсь изменить приведенный ниже код, чтобы исправить ошибку, а именно то, что она первоначально запрашивалась моделью.Если бы у вас было два диска с одинаковыми моделями, он вернул бы только \\. \ PHYSICALDEVICE первого диска.Вместо этого я сейчас представляю строку \\ PHYSICALDEVICE: MODEL пользователю.Они выбирают это из выпадающего списка, я разбираю физическое устройство и использую его для запроса.
За исключением того, что я продолжаю получать сообщение об ошибке "Недопустимый запрос", возвращаемый по запросу MOS
"SELECT * FROM Win32_DiskDrive WHERE DeviceID = '" + device + "'"
На мой взгляд, запрос выглядит хорошо, но, очевидно, нет.Помощь приветствуется.
Полный код:
private void Form1_Load(object sender, EventArgs e)
{
//Select item from drop down menu
ManagementObjectSearcher mosDisks = new ManagementObjectSearcher(
"SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject moDisk in mosDisks.Get())
{
string devid = moDisk["Model"].ToString();
string drvnum = moDisk["DeviceID"].ToString();
cmbHdd.Items.Add(drvnum + ": " + devid);
}
}
private void cmbHdd_SelectedIndexChanged(object sender, EventArgs e)
{
//update form with selected device
int i = cmbHdd.SelectedItem.ToString().IndexOf(':');
string device = cmbHdd.SelectedItem.ToString();//.Substring(0,i);
ManagementObjectSearcher mosDisks = new ManagementObjectSearcher(
"SELECT * FROM Win32_DiskDrive WHERE DeviceID = '" + device + "'");
foreach (ManagementObject moDisk in mosDisks.Get())
{
lblDeviceID.Text = "DeviceID: " + moDisk["DeviceID"].ToString();
}
}