Как проверить, установлен ли драйвер?

Я работаю над проектом VPN. У меня есть небольшие сомнения относительно TUN/TAP.

Как программно проверить/обнаружить, установлен ли драйвер TUN/TAP в системе на С#?


person user2430116    schedule 27.04.2014    source источник


Ответы (1)


Вы можете проверить, установлен ли конкретный драйвер, выполнив WQL SelectQuery.

using System;
using System.Management;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Searching for driver...");

            System.Management.SelectQuery query = new System.Management.SelectQuery("Win32_SystemDriver");
            query.Condition = "Name = 'SomeDriverName'";
            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(query);
            var drivers = searcher.Get();

            if (drivers.Count > 0) Console.WriteLine("Driver exists.");
            else Console.WriteLine("Driver could not be found.");

            Console.ReadLine();
        }
    }
}

Если приведенный выше код не скомпилируется, убедитесь, что вы добавили ссылку на сборку System.Management.

Вы также можете найти эти ссылки полезными:

Установка всех драйверов на компьютер

Получить список установленных драйверов | ДаниВеб

person JW Lim    schedule 28.04.2014
comment
У меня есть драйвер под названием «Драйвер NexusDB V3.09», установленный на моем компьютере, но с помощью этого способа я не смог найти его в списке. Что-то пропало с моей стороны? - person Mahesh; 06.03.2018
comment
Кажется, это не работает для меня - если я удалю устройство (и поставлю галочку в поле «Удалить драйвер»), оно все равно будет найдено по этому запросу. Тем не менее, если я подключаю устройство, в списке устройств в настройках говорится, что драйвер недоступен, и устройство нельзя использовать снова, пока я снова не переустановлю драйвер. - person colmde; 23.10.2018
comment
Я также обнаружил, что результат запроса WQL не всегда совпадает с ожидаемым. Я использую это для сканирования драйверов и предлагаю пользователю установить, если они не найдены, но он часто возвращается без найденного драйвера, когда они действительно установлены, что означает, что мое приглашение в основном отображается каждый раз при запуске программного обеспечения. Любые обновления по этому вопросу, которые могут помочь? - person TheBeardedQuack; 14.07.2020