Reputation: 58963
on Windows 7 I can enable and disable connections via the Network Connections Manager panel (in system settings).
How can I do this programmatically in C#? Thanks
Upvotes: 10
Views: 14683
Reputation: 38494
You can achieve this in C# by leveraging WMI and the Win32_NetworkAdapter WMI class. The Win32_NetworkAdapter class has Enable and Disable methods which can be executed on a selected network interface.
An example of usage can be found here:
link not available, but archived at:
Briefly, steps to do this are:
Generate a wrapper for the class from VS command prompt
mgmtclassgen Win32_NetworkAdapter /L CS -p NetworkAdapter.cs
Stepping through the adapters:
SelectQuery query = new SelectQuery("Win32_NetworkAdapter", "NetConnectionStatus=2"); ManagementObjectSearcher search = new ManagementObjectSearcher(query); foreach(ManagementObject result in search.Get()) { NetworkAdapter adapter = new NetworkAdapter(result); // Identify the adapter you wish to disable here. // In particular, check the AdapterType and // Description properties. // Here, we're selecting the LAN adapters. if (adapter.AdapterType.Contains("Ethernet 802.3")) { adapter.Disable(); } }
Upvotes: 16