Exemplo n.º 1
0
        public static void SetPowerState()
        {
            //修改连接请求
            Microsoft.Win32.RegistryKey registrykey;
            registrykey = Registry.CurrentUser;
            registrykey = registrykey.OpenSubKey("Software\\Microsoft\\BluetoothAuthenticationAgent", true);
            if (registrykey != null)
            {
                string[] keys = new string[1024];
                keys = registrykey.GetValueNames();
                foreach (string key in keys)
                {
                    if (key.ToUpper() == "ACCEPTINCOMINGREQUESTS")
                    {
                        registrykey.SetValue(key, (object)0);
                    }
                }
            }
            else
            {
                registrykey = Registry.CurrentUser;
                registrykey = registrykey.OpenSubKey("Software\\Microsoft", true);
                if (registrykey != null)
                {
                    registrykey = registrykey.CreateSubKey("BluetoothAuthenticationAgent", RegistryKeyPermissionCheck.ReadWriteSubTree);
                    if (registrykey != null)
                    {
                        registrykey.SetValue("AcceptIncomingRequests", (object)0);
                    }
                }
            }
            if (GetOs() != "WIN7")
            {
                //return;
            }
            StringBuilder sbDevHst  = new StringBuilder();
            List <string> portsList = new List <string>();

            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity");

            foreach (System.Management.ManagementObject mgt in searcher.Get())
            {
                try
                {
                    string Devicename = mgt["Name"].ToString();
                    if (Devicename == "Generic Bluetooth Radio")
                    {
                        foreach (PropertyData property in mgt.Properties)
                        {
                            string Propernames = property.Name;
                            if (Propernames.ToUpper() == "DEVICEID")
                            {
                                ChangePowerManage(mgt[Propernames].ToString());
                            }
                        }
                    }
                    if (Devicename == "Generic USB Hub")
                    {
                        foreach (PropertyData property in mgt.Properties)
                        {
                            string Propernames = property.Name;
                            if (Propernames.ToUpper() == "DEVICEID")
                            {
                                ChangePowerManage(mgt[Propernames].ToString());
                            }
                        }
                    }
                    if (Devicename == "USB Root Hub")
                    {
                        foreach (PropertyData property in mgt.Properties)
                        {
                            string Propernames = property.Name;
                            if (Propernames.ToUpper() == "DEVICEID")
                            {
                                ChangePowerManage(mgt[Propernames].ToString());
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ClsToolTip.WriteLog("Common 类" + ex.Message);
                }
            }
        }
Exemplo n.º 2
0
        public static object GetPowerStatus()
        {
            object        status    = null;
            string        keynames  = "";
            StringBuilder sbDevHst  = new StringBuilder();
            List <string> portsList = new List <string>();

            System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity");

            foreach (System.Management.ManagementObject mgt in searcher.Get())
            {
                try
                {
                    string Devicename = mgt["Name"].ToString();
                    if (Devicename == "Generic Bluetooth Radio")
                    {
                        foreach (PropertyData property in mgt.Properties)
                        {
                            string Propernames = property.Name;
                            if (Propernames.ToUpper() == "DEVICEID")
                            {
                                keynames = mgt[Propernames].ToString();
                                goto FindPowerManger;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ClsToolTip.WriteLog("Common 类" + ex.Message);
                }
            }

FindPowerManger:
            if (/*GetOs() == "WIN7" &&*/ !string.IsNullOrEmpty(keynames))
            {
                try
                {
                    Microsoft.Win32.RegistryKey registrykey;
                    ////////////////////////////////////
                    registrykey = Registry.LocalMachine;
                    registrykey = registrykey.OpenSubKey("SYSTEM\\ControlSet001\\Enum\\" + keynames + "\\Device Parameters", true);
                    if (registrykey != null)
                    {
                        string[] keys = new string[1024];
                        keys = registrykey.GetValueNames();
                        foreach (string key in keys)
                        {
                            if (key.ToUpper() == "SELECTIVESUSPENDENABLED")
                            {
                                //registrykey.SetValue(key, (object)0);
                                status = registrykey.GetValue(key);
                            }
                        }
                    }
                    ////////////////////////////////////
                    registrykey = Registry.LocalMachine;
                    registrykey = registrykey.OpenSubKey("SYSTEM\\CurrentControlSet\\Enum\\" + keynames + "\\Device Parameters", true);
                    if (registrykey != null)
                    {
                        string[] keys = new string[1024];
                        keys = registrykey.GetValueNames();
                        foreach (string key in keys)
                        {
                            if (key.ToUpper() == "SELECTIVESUSPENDENABLED")
                            {
                                //registrykey.SetValue(key, (object)0);
                                status = registrykey.GetValue(key);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ClsToolTip.WriteLog("更改电源设置错误:" + ex.Message);
                }
            }

            return(status);
        }