I am working on a VPN project.. I have a small doubt regarding TUN/TAP.
How do I programmatically check/detect if a TUN/TAP driver is installed on a system in C#?
You can check if a particular driver is installed by executing a 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();
}
}
}
If the above code fails to compile, make sure you add a reference to the System.Management
assembly.
You may also find these references helpful: