//禁用 SetNetworkAdapter(False) //启用 SetNetworkAdapter(True) //添加引用system32\shell32.dll /// <summary> /// 通过网络连接名,修改网络启用,停用状态 /// </summary> /// <param name="status">启用true,停用false</param> /// <param name="pNetworkConnection">网络连接名</param> /// <returns></returns> public static bool SetNetworkAdapterByShell(bool status, string pNetworkConnection) { const string discVerb = "停用(&B)"; // "停用(&B)"; const string connVerb = "启用(&A)"; // "启用(&A)"; const string network = "网络连接"; //"网络连接"; //const string networkConnection = this._netCardName; // "本地连接" 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 == pNetworkConnection)) { //找本地连接的所有右键功能菜单 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); }
//锁定到任务栏 public static void LockToTaskbar(bool isLock) { Shell shell = new Shell(); Shell32.Folder folder = shell.NameSpace(Path.GetDirectoryName(Application.StartupPath + "\\Aurora Player.exe")); FolderItem app = folder.ParseName(Path.GetFileName(Application.StartupPath + "\\Aurora Player.exe")); string sVerb = isLock ? "锁定到任务栏(&K)" : "从任务栏脱离(&K)"; foreach (FolderItemVerb Fib in app.Verbs()) { if (Fib.Name == sVerb) { Fib.DoIt(); return; } } return; }
/// <summary> /// 本地浏览器右键菜单“属性”条目事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LocalPopupMenuProperty_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { const string discVerb = "属性(&R)"; Point p = this.ListViewLocal.PointToClient(new Point(menutrippoint.X, menutrippoint.Y)); string sourceFile = LocalPath + ListViewLocal.GetItemAt(p.X, p.Y).Text; FileInfo file = new FileInfo(sourceFile); Shell32.Shell shell = new Shell32.Shell(); Shell32.Folder folder = shell.NameSpace(file.DirectoryName); Shell32.FolderItem folderItem = folder.ParseName(file.Name); foreach (Shell32.FolderItemVerb Fib in folderItem.Verbs()) { if (Fib.Name == discVerb) { Fib.DoIt(); break; } } }