コード例 #1
0
        // Token: 0x06000055 RID: 85 RVA: 0x00002C04 File Offset: 0x00000E04
        public static BaseBoard GetBaseBoard()
        {
            string condition = "PoweredOn = TRUE";

            string[] properties = new string[]
            {
                "Model",
                "Product",
                "Name",
                "Manufacturer",
                "SerialNumber",
                "PoweredOn"
            };
            WmiClassCollection wmiClassCollection = Wmi.Query("Win32_Baseboard", properties, condition, null);
            bool      flag = wmiClassCollection == null || wmiClassCollection.Count == 0;
            BaseBoard result;

            if (flag)
            {
                result = null;
            }
            else
            {
                WmiClass  wmiClass  = wmiClassCollection[0];
                BaseBoard baseBoard = new BaseBoard((string)wmiClass["Model"].Value, (string)wmiClass["Product"].Value, (string)wmiClass["Name"].Value, (string)wmiClass["Manufacturer"].Value, (string)wmiClass["SerialNumber"].Value);
                result = baseBoard;
            }
            return(result);
        }
コード例 #2
0
        public static BaseBoard GetBaseBoard()
        {
            string condition = "PoweredOn = TRUE";

            string[] requiredProperties = new string[]
            {
                "Model",
                "Product",
                "Name",
                "Manufacturer",
                "SerialNumber",
                "PoweredOn"
            };

            WmiClassCollection classCollection = Wmi.Query(Wmi.BASEBOARD_CLASSNAME, requiredProperties, condition);

            if (classCollection == null || classCollection.Count == 0)
            {
                return(null);
            }

            WmiClass  wmiClass  = classCollection[0];
            BaseBoard baseBoard = new BaseBoard(
                (string)wmiClass["Model"].Value,
                (string)wmiClass["Product"].Value,
                (string)wmiClass["Name"].Value,
                (string)wmiClass["Manufacturer"].Value,
                (string)wmiClass["SerialNumber"].Value);

            return(baseBoard);
        }
コード例 #3
0
        private static void Init()
        {
            Console.WriteLine("配置 Microsoft 托管网络虚拟适配器中……");
            dynamic virtualAdapter = WmiClass.Query(new SelectQuery("Win32_NetworkAdapter",
                                                                    "PhysicalAdapter=1 AND ServiceName='vwifimp'")).FirstOrDefault();

            if (virtualAdapter == null)
            {
                Console.WriteLine("查询 Microsoft 托管网络虚拟适配器失败!请先启动无线网络共享后再试。");
                return;
            }
            virtualAdapter.NetConnectionID = "无线网络共享";
            dynamic configuration = WmiClass.Query(new SelectQuery("Win32_NetworkAdapterConfiguration",
                                                                   $"SettingID='{virtualAdapter.GUID}'")).SingleOrDefault();

            if (configuration == null)
            {
                Console.WriteLine("查询 Microsoft 托管网络虚拟适配器具体配置失败!请先启动无线网络共享后再试。");
                return;
            }
            configuration.EnableStatic(new[] { "192.168.137.1" }, new[] { "255.255.255.0" });
            configuration.SetGateways(null, null);
            configuration.SetDNSServerSearchOrder(null);
            Console.WriteLine("搜索可用网络连接中……");
            dynamic manager = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid
                                                                                 ("5C63C1AD-3956-4FF8-8486-40034758315B")));
            dynamic virtualConnection = null;
            var     query             = new List <Tuple <dynamic, dynamic> >();

            foreach (var connection in manager.EnumEveryConnection)
            {
                var props = manager.NetConnectionProps[connection];
                if (props.Guid == virtualAdapter.GUID)
                {
                    if (virtualConnection == null)
                    {
                        virtualConnection = connection;
                    }
                    else
                    {
                        return;
                    }
                }
                else if (props.Status == 2) // NCS_CONNECTED
                {
                    Console.WriteLine($"{query.Count}. {props.Name} ({props.DeviceName})");
                    query.Add(new Tuple <dynamic, dynamic>(connection, props.Guid));
                }
            }
            if (query.Count > 0)
            {
                var picked = 0;
                if (query.Count > 1)
                {
                    Console.Write("请选择要共享的网络连接序号:(即前面的序号,输个错误的取消操作)");
                    if (!int.TryParse(Console.ReadLine(), out picked) || picked < 0 || picked >= query.Count)
                    {
                        return;
                    }
                }
                else
                {
                    Console.WriteLine("共享唯一可用的网络连接中……");
                }
                foreach (dynamic cp in WmiClass.Query(new ManagementScope(@"\\.\ROOT\Microsoft\HomeNet"),
                                                      new ObjectQuery("SELECT * FROM HNet_ConnectionProperties")))
                {
                    try
                    {
                        if (cp.IsIcsPrivate)
                        {
                            cp.IsIcsPrivate = false;
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("删除旧共享失败:" + e.Message);
                    }
                }
                foreach (var connection in manager.EnumEveryConnection)
                {
                    var conf  = manager.INetSharingConfigurationForINetConnection[connection];
                    var props = manager.NetConnectionProps[connection];
                    if (conf.SharingEnabled && (props.Guid != query[picked].Item2 || conf.SharingConnectionType != 0) &&
                        (props.Guid != virtualAdapter.GUID && conf.SharingConnectionType != 1))
                    {
                        conf.DisableSharing();
                    }
                }
                var tempConf = manager.INetSharingConfigurationForINetConnection[query[picked].Item1];
                if (!tempConf.SharingEnabled)
                {
                    tempConf.EnableSharing(0);                              // ICSSHARINGTYPE_PRIVATE
                }
                tempConf = manager.INetSharingConfigurationForINetConnection[virtualConnection];
                if (!tempConf.SharingEnabled)
                {
                    tempConf.EnableSharing(1);                              // ICSSHARINGTYPE_PUBLIC
                }
                Console.WriteLine("初始化设置完成!");
            }
            else
            {
                Console.WriteLine("没有可用的网络连接!");
            }
        }