C#通过shell32来控制本地连接
Code
//禁用 SetNetworkAdapter(False)
//启用 SetNetworkAdapter(True)
//添加引用system32\shell32.dll
private static bool SetNetworkAdapter(bool status) {
const string discVerb = "Disable"; // "停用(&B)";
const string connVerb = "Enable"; // "启用(&A)";
const string network = "Network Connections"; //"网络连接";
const string networkConnection = "Local Area Connection"; // "本地连接"
string sVerb = null;
if (status) {
sVerb = connVerb;
} else {
sVerb = discVerb;
}
Shell32.Shell sh = new Shell32.Shell();
Shell32.Folder folder = sh.NameSpace(Shell32.ShellSpecialFolderConstants.ssfCONTROLS);
try {
//进入控制面板的所有选项
foreach (Shell32.FolderItem myItem in folder.Items()) {
//进入网络连接
if (myItem.Name == network) {
Shell32.Folder fd = (Shell32.Folder) myItem.GetFolder;
foreach (Shell32.FolderItem fi in fd.Items()) {
//找到本地连接
if ((fi.Name == networkConnection)) {
//找本地连接的所有右键功能菜单
foreach (Shell32.FolderItemVerb Fib in fi.Verbs()) {
if (Fib.Name == sVerb) {
Fib.DoIt();
return true;
}
}
}
}
}
}
} catch (Exception e) {
Console.WriteLine(e.Message);
return false;
}
return true;
}
//禁用 SetNetworkAdapter(False)
//启用 SetNetworkAdapter(True)
//添加引用system32\shell32.dll
private static bool SetNetworkAdapter(bool status) {
const string discVerb = "Disable"; // "停用(&B)";
const string connVerb = "Enable"; // "启用(&A)";
const string network = "Network Connections"; //"网络连接";
const string networkConnection = "Local Area Connection"; // "本地连接"
string sVerb = null;
if (status) {
sVerb = connVerb;
} else {
sVerb = discVerb;
}
Shell32.Shell sh = new Shell32.Shell();
Shell32.Folder folder = sh.NameSpace(Shell32.ShellSpecialFolderConstants.ssfCONTROLS);
try {
//进入控制面板的所有选项
foreach (Shell32.FolderItem myItem in folder.Items()) {
//进入网络连接
if (myItem.Name == network) {
Shell32.Folder fd = (Shell32.Folder) myItem.GetFolder;
foreach (Shell32.FolderItem fi in fd.Items()) {
//找到本地连接
if ((fi.Name == networkConnection)) {
//找本地连接的所有右键功能菜单
foreach (Shell32.FolderItemVerb Fib in fi.Verbs()) {
if (Fib.Name == sVerb) {
Fib.DoIt();
return true;
}
}
}
}
}
}
} catch (Exception e) {
Console.WriteLine(e.Message);
return false;
}
return true;
}