吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3360|回复: 5
收起左侧

[会员申请] 申请会员ID:chfei

[复制链接]
吾爱游客  发表于 2015-1-21 21:50
1、申 请 I D:chfei
2、个人邮箱:chaihongfei@qq.com
2.jpg
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Win32;
using NETCONLib;
using System.Net.NetworkInformation;
using System.Drawing;

namespace VirtualWifi
{
    class Win7Operating : IOperatingWifi, IWifiInfo
    {
        /// <summary>
        /// 委托
        /// </summary>
        /// <param name="mess"></param>
        /// <param name="color"></param>
        public delegate void ShowMess(string mess, Color color);

        public event ShowMess _showmes;

        /// <summary>
        /// 注册表路径
        /// </summary>
        RegistryKey RegKey = Registry.CurrentUser.OpenSubKey("SOFTWARE", true).OpenSubKey("Microsoft", true);

        /// <summary>
        /// 网络适配器列表
        /// </summary>
        Dictionary<string, NetManager> DIClist = new Dictionary<string, NetManager>();

        /// <summary>
        /// 共享网络适配器名称
        /// </summary>
        string GxName = null;
        /// <summary>
        /// 虚拟适配器名称
        /// </summary>
        string XnName = null;

        /// <summary>
        /// 运行程序
        /// </summary>
        public void Run(WifiInfo info)
        {
            if (CreateWifi(info))//创建WIFi
            {
                _showmes("Wifi创建成功", Color.Black);
                GetInternetName();//获取网络适配器列表
                _showmes("开启虚拟网卡...", Color.Black);
                if (NetDsable())
                {
                    _showmes("智能获取联网适配器...", Color.Black);
                    GxName = ZNGetNet();//智能匹配网络适配器
                    _showmes("正在关闭其他共享设备...", Color.Black);
                    if (DisableSharing())//关闭共享
                    {
                        _showmes("正在开启共享网络...", Color.Black);
                        if (ShareWIFI())//开启共享
                        {
                            _showmes("开启共享成功", Color.Black);
                            if (StartWifi())//开启wifi
                            {
                                _showmes("开启WIFI成功,可以连接设备", Color.Black);
                            }
                        }
                    }
                }

            }



        }

        /// <summary>
        /// 退出程序
        /// </summary>
        public void Quit(WifiInfo info)
        {
            _showmes("正在关闭网络共享...", Color.Black);
            if (DisableSharing())
            {
                _showmes("正在删除虚拟Wifi...", Color.Black);
                if (DelWifi())
                {
                    _showmes("正在保存连接信息...", Color.Black);
                    if (SaveInfo(info))
                    {
                        _showmes("关闭Wifi成功", Color.Black);
                    }
                }
            }



        }


        /// <summary>
        /// 创建WIFi
        /// </summary>
        /// <returns></returns>
        public bool CreateWifi(WifiInfo info)
        {
            string cmd = string.Format("netsh wlan set hostednetwork mode=allow ssid={0} key={1}", info.WifiName, info.WifiPwd);//创建wifi
            string Context = ExecutionDos.Execute(cmd, 1000);
            if (Context.Contains("承载网络模式已设置为允许。") && Context.Contains("已成功更改承载网络的 SSID。") && Context.Contains("已成功更改托管网络的用户密钥密码。"))
                return true;
            else
            {
                _showmes(Context, Color.Red);
                return false;
            }
        }

        /// <summary>
        /// 开启WIFi
        /// </summary>
        /// <returns></returns>
        public bool StartWifi()
        {
            GxName = ZNGetNet();
            string cmd = "netsh wlan start hostednetwork";//开启wifi
            string Context = ExecutionDos.Execute(cmd, 1000);
            if (Context.Contains("已启动承载网络"))
                return true;
            else
            {
                _showmes(Context, Color.Red);
                return false;
            }
        }

        /// <summary>
        /// 删除wifi
        /// </summary>
        /// <returns></returns>
        public bool DelWifi()
        {
            string cmd = "netsh wlan set hostednetwork mode=disallow";//删除
            string Context = ExecutionDos.Execute(cmd, 1000);
            if (Context.Contains("承载网络模式已设置为禁止"))
                return true;
            else
            {
                _showmes(Context, Color.Red);
                return false;
            }
        }

        /// <summary>
        /// 保存信息
        /// </summary>
        /// <returns></returns>
        public bool SaveInfo(WifiInfo info)
        {
            try
            {
                RegistryKey TempRegKey = RegKey.CreateSubKey("WIFI");
                TempRegKey.SetValue("UserName", info.WifiName);
                TempRegKey.SetValue("PassWord", info.WifiPwd);
                return true;
            }
            catch (Exception ex)
            {
                _showmes(ex.Message, Color.Red);
                return false;
            }
        }

        /// <summary>
        /// 获取信息
        /// </summary>
        /// <returns></returns>
        public WifiInfo GetInfo()
        {
            WifiInfo info = new WifiInfo();
            try
            {
                RegistryKey TempRegKey = RegKey.OpenSubKey("WIFI");
                if (TempRegKey != null)
                {

                    string tempuser = TempRegKey.GetValue("UserName").ToString();
                    string temppwd = TempRegKey.GetValue("PassWord").ToString();
                    info.WifiName = string.IsNullOrEmpty(tempuser) ? info.WifiName : tempuser;
                    info.WifiPwd = string.IsNullOrEmpty(temppwd) ? info.WifiPwd : temppwd;
                }
                return info;
            }
            catch (Exception ex)
            {
                _showmes(ex.Message, Color.Red);
                return info;
            }
        }


        /// <summary>
        /// 获取所有网络列表
        /// </summary>
        /// <returns></returns>
        void GetInternetName()
        {
            try
            {
                DIClist.Clear();
                NetSharingManager manager = new NetSharingManager();
                INetSharingEveryConnectionCollection connections = manager.EnumEveryConnection;
                foreach (INetConnection c in connections)
                {
                    NetManager netmarager = new NetManager();
                    netmarager.Props = manager.NetConnectionProps[c];
                    netmarager.Sharing = manager.INetSharingConfigurationForINetConnection[c];
                    if (netmarager.Props.DeviceName == "Microsoft Virtual WiFi Miniport Adapter")
                        XnName = netmarager.Props.Name;
                    DIClist.Add(netmarager.Props.Name, netmarager);
                }
            }
            catch (Exception ex)
            {
                _showmes(ex.Message, Color.Red);
            }
        }


        # region 智能选择
        /// <summary>
        /// 判断是否有宽带连接信息是否在连接状态
        /// </summary>
        /// <returns></returns>
        string IFPPPOE()
        {
            var manager = new NetSharingManager();
            var connections = manager.EnumEveryConnection;

            foreach (KeyValuePair<string, NetManager> item in DIClist)
            {
                if (item.Value.Props.MediaType == tagNETCON_MEDIATYPE.NCM_PPPOE && item.Value.Props.Status == tagNETCON_STATUS.NCS_MEDIA_DISCONNECTED)
                    return item.Key;
            }
            return null;
        }


        /// <summary>
        /// 获取最流量最高的网卡名称
        /// </summary>
        /// <returns></returns>
        string GetIPV4()
        {
            string name = null;
            long received = 0;
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface ni in interfaces)
            {
                long item = ni.GetIPv4Statistics().BytesReceived;
                if (item > received)
                {
                    name = ni.Name;
                    received = item;
                }
            }
            return name;
        }

        /// <summary>
        /// 智能选择网络上的网卡信息
        /// </summary>
        /// <returns></returns>
        string ZNGetNet()
        {
            string name = IFPPPOE();
            if (!string.IsNullOrEmpty(name))
                return name;
            else
                name = GetIPV4();
            return name;
        }
        #endregion

        /// <summary>
        /// 启用网卡
        /// </summary>
        /// <returns></returns>
        bool NetDsable()
        {
            try
            {
                if (DIClist[XnName].Props.Status == tagNETCON_STATUS.NCS_DISCONNECTED)
                    return ExecutionDos.ChangeNetworkConnectionStatus(XnName, true);
                else
                    return true;
            }
            catch (Exception ex)
            {
                _showmes(ex.Message, Color.Red);
                return false;
            }
        }


        /// <summary>
        /// 共享网络  WIFI
        /// </summary>
        bool ShareWIFI()
        {
            try
            {
                DIClist[GxName].Sharing.EnableSharing(tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PUBLIC);
                DIClist[XnName].Sharing.EnableSharing(tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PRIVATE);
                return true;
            }
            catch (Exception ex)
            {
                _showmes(ex.Message, Color.Red);
                return false;
            }

        }


        /// <summary>
        /// 关闭共享
        /// </summary>
        bool DisableSharing()
        {
            try
            {
                foreach (KeyValuePair<string, NetManager> item in DIClist)
                {
                    if (item.Value.Sharing.SharingEnabled)
                        item.Value.Sharing.DisableSharing();
                }
                return true;
            }
            catch (Exception ex)
            {
                _showmes(ex.Message, Color.Red);
                return false;
            }
            finally
            {
                GC.Collect();
            }
        }
    }
}

1.jpg

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2015-1-22 10:55
ID:chfei
邮箱:chaihongfei@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。

Ps:说实话申请内容过于简单,此类程序在网上开源也较多,期待加入吾爱后有更多的分享吧。
吾爱游客  发表于 2015-1-22 14:08
Hmily 发表于 2015-1-22 10:55
ID:chfei
邮箱:

好吧 邮箱发错了 是126的……
应该是chaihongfei@126.com
这几天测试数据老用qq邮箱 原谅我这一次吧

点评

感觉无法原谅啊!  详情 回复 发表于 2015-1-22 15:17
Hmily 发表于 2015-1-22 15:17
游客 58.243.227.x 发表于 2015-1-22 14:08
好吧 邮箱发错了 是126的……
应该是
这几天测试数据老用qq邮箱 原谅我这一次吧

感觉无法原谅啊!
7588583 发表于 2015-1-23 10:13
老黑,好久不见
我是who 发表于 2015-2-7 15:06 来自手机
瞬间我就笑了,看完
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 17:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表