在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天在调一IM断线重连的功能,一直拨插本本的网口,十几次下来后有点心疼。可又懒得每次切换过来切换过去 ,选中后点右健,更甚至有时不知不觉老是把网络连接那窗口关掉,每次都要点那么好几下才成功,一气之下找了段VB的例子,照着改改,能用用。嘿嘿
打开之后先选好某一网络连接,然后最小化到托盘,以后每次双击即是改变了。嘿嘿
双击默认是点击按钮,嘿嘿 这样就方便多了,也不用一直去拨插,心疼本本呀
代码很简单,也很无奈,里面有好几个地方硬编码(英文版,还有2K的具体情况再定喽),主要是用一个DLL:SHELL32 这里给出原作者的地址,嘿嘿。照抄过来就是了
http://www.codeproject.com/KB/vb/toggleNetworkConn.aspx
获取系统控制面板文件夹 private static Shell32.Folder ControlPanelFolder { get { Shell32.Shell shell = new Shell32.Shell(); return shell.NameSpace(3); } }
获取控制面板下的网络连接(注这里的网络连接是XP下的,2K下的自已改) private static Shell32.Folder NetworkFolder { get { Shell32.Folder retVal = null;
foreach (Shell32.FolderItem fi in ControlPanelFolder.Items()) { if (fi.Name == "网络连接") { retVal = (Shell32.Folder)fi.GetFolder; } } if (retVal == null) { throw (new NetworkConnectionsFolderNotFoundException()); } else { return retVal; } } }
取得几个网络连接的列表,一般现在都不止单网卡 public static List<string> NetWorkFolderList() { List<string> LNetWorkFolder = new List<string>(); foreach (Shell32.FolderItem folderItem in NetworkFolder.Items()) { LNetWorkFolder.Add(folderItem.Name); } return LNetWorkFolder; } 通过名称获取相应的图标 private static Shell32.FolderItem GetItem(string str) { Shell32.FolderItem retVal = null; foreach (Shell32.FolderItem folderItem in NetworkFolder.Items()) { if (folderItem.Name == str) { retVal = folderItem; break; } }
执行右健功能 Shell32.FolderItem item = GetItem(str); foreach (Shell32.FolderItemVerb verb in item.Verbs()) { if (verb.Name == "启用(&A)" || verb.Name == "停用(&B)") { verb.DoIt(); } }
if (retVal == null) { throw (new LocalAreaConnectionFolderItemNotFoundException()); } else { return retVal; } }
代码主要部分就在这里了喽,嘿嘿,有兴趣的朋友可以跟着做一个,嘿嘿。这个例子估计也是老WIN32程序员才做得出,改天找找类库里有没可以实现的,嘿嘿。
|
请发表评论