• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

winForm:管理网络连接开关的小程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天在调一IM断线重连的功能,一直拨插本本的网口,十几次下来后有点心疼。可又懒得每次切换过来切换过去 ,选中后点右健,更甚至有时不知不觉老是把网络连接那窗口关掉,每次都要点那么好几下才成功,一气之下找了段VB的例子,照着改改,能用用。嘿嘿

 

打开之后先选好某一网络连接,然后最小化到托盘,以后每次双击即是改变了。嘿嘿

 

 

 

双击默认是点击按钮,嘿嘿

这样就方便多了,也不用一直去拨插,心疼本本呀

 

代码很简单,也很无奈,里面有好几个地方硬编码(英文版,还有2K的具体情况再定喽),主要是用一个DLLSHELL32

这里给出原作者的地址,嘿嘿。照抄过来就是了

 

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程序员才做得出,改天找找类库里有没可以实现的,嘿嘿。

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap