private static bool InstallAdapter()
        {
            NetworkAdapterInstaller.RunCmd("devcon.exe install %windir%/inf/netloop.inf *msloop", new Action <Process>(NetworkAdapterInstaller.DEBUGWriteToConsole));
            List <ManagementBaseObject> managementBaseObjects = NetworkAdapterInstaller.QueryInstalledLoopbackAdapters();

            if (managementBaseObjects.Count <= 0)
            {
                NetworkAdapterInstaller.SendErrorMessage("虚拟网卡安装失败!");
                return(false);
            }
            NetworkAdapterInstaller.SendMessage(string.Format("虚拟网卡安装成功:{0}", managementBaseObjects[0]["Caption"]));
            return(true);
        }
        private static bool CheckAndOpenAdapter()
        {
            NetworkAdapterInstaller.SendMessage("开始检查虚拟网卡..");
            List <ManagementBaseObject> managementBaseObjects = NetworkAdapterInstaller.QueryInstalledLoopbackAdapters();

            if (managementBaseObjects.Count <= 0)
            {
                NetworkAdapterInstaller.SendMessage("未找到已安装的虚拟网卡...开始安装..");
                if (!NetworkAdapterInstaller.InstallAdapter())
                {
                    return(false);
                }
                NetworkAdapterInstaller.SendMessage("开始设置网卡信息");
                return(NetworkAdapterInstaller.SetAdapter());
            }
            if (managementBaseObjects.Count == 1)
            {
                if (NetworkAdapterInstaller.EnableAdapter(managementBaseObjects[0].Properties["PNPDeviceID"].Value.ToString()))
                {
                    NetworkAdapterInstaller.SendMessage("开始设置网卡信息");
                    return(NetworkAdapterInstaller.SetAdapter());
                }
                NetworkAdapterInstaller.SendErrorMessage("网卡启动失败!");
                return(false);
            }
            NetworkAdapterInstaller.SendMessage("找到多个虚拟网卡,处理中");
            for (int i = 0; i < managementBaseObjects.Count; i++)
            {
                if (i != 0)
                {
                    NetworkAdapterInstaller.DeleteAdapter(managementBaseObjects[i].Properties["PNPDeviceID"].Value.ToString());
                }
            }
            NetworkAdapterInstaller.SendMessage("开始设置网卡信息");
            return(NetworkAdapterInstaller.SetAdapter());
        }