Я использую приложение WPF для разработки инструмента тестирования.Предполагается, что одна из кнопок запускает этот поток:
- Установка исполняемого файла с установкой драйвера.
- выполнение запроса WMI, чтобы проверить, установлен ли драйвер.
- Удалите драйвер.
- при выполнении запроса WMI, чтобы увидеть, был ли удален драйвер.
Проблема заключается в том, что после выполнения одного запроса кажется, что результаты кэшируются где-то в приложениии он не обновляется, поэтому функция возвращает, что драйвер все еще установлен, даже когда я вижу, что это не так (ручная проверка в диспетчере устройств и даже выполнение запроса вручную с помощью Power Shell во время точки останова в приложении).
Есть ли способ очистить кеш или обновить результаты?
Спасибо.
Это функции, которые проверяют драйвер с запросом WMI:
private void CheckIfDeviceInstalled(string driver, bool shouldBeInstalled)
{
main_wtl.writeToConsoleAndLog("Searching for " + driver + " driver...", ConsoleColor.White);
SelectQuery query = new SelectQuery("Win32_pnpsigneddriver");
query.Condition = "DeviceName = '"+driver+"'";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
var drivers = searcher.Get();
if (shouldBeInstalled)
{
if (drivers.Count > 0)
main_wtl.writeToConsoleAndLog(driver + " Driver exists.", ConsoleColor.Green);
else
main_wtl.writeToConsoleAndLog(driver + " Driver could not be found.", ConsoleColor.Red);
}
else
{
if (drivers.Count > 0)
main_wtl.writeToConsoleAndLog(driver + " Driver exists.", ConsoleColor.Red);
else
main_wtl.writeToConsoleAndLog(driver + " Driver could not be found.", ConsoleColor.Green);
}
}