我在使用使用外部蓝牙设备的应用程序时遇到问题。当设备闲置一段时间时 Windows 打开蓝牙 radio 的电源。当我取消选中蓝牙 radio 的电源管理选项卡下的[允许计算机关闭此设备以节省电量。] 它可以工作。参见图片。 同样需要通过 C# 代码来实现。从Win7开始需要这样做。 我不熟悉 Windows C# 的电源管理选项。我在这里有什么选择?是否有我可以使用的事件或 WMI 类?
当我的 WPF 应用程序运行时,我应该能够更改这些设置。并在关闭时恢复它。
最佳答案
您可以使用 C# 中的 WMI 轻松完成此操作。确保添加对 System.Management 的引用(以及 using System.Management; 语句)
//BTHUSB will identify physical bluetooth adapters only, if you want all bluetooth devices use 'WHERE PNPClass='Bluetooth' or specific device 'WHERE Name='Intel(R) Wireless Bluetooth(R)'
ManagementObjectCollection PhysicalBluetoothAdapterResults = new ManagementObjectSearcher("root\\CIMV2", "SELECT DeviceID FROM Win32_PnPEntity WHERE Service='BTHUSB'").Get();
foreach(ManagementObject PhysicalBluetoothAdapter in PhysicalBluetoothAdapterResults)
{
string DeviceID = PhysicalBluetoothAdapter.Properties["DeviceID"].Value.ToString().Replace("\\","\\\\");
ManagementObjectCollection AdapterPowerOptionResults = new ManagementObjectSearcher("root\\WMI", $"SELECT * FROM MSPower_DeviceEnable WHERE InstanceName LIKE '{DeviceID}_%'").Get();
foreach(ManagementObject AdapterPowerOption in AdapterPowerOptionResults)
{
AdapterPowerOption.Properties["enable"].Value = false;
AdapterPowerOption.Put();
}
}
希望这有帮助。
-保罗
关于c# - 我们如何以编程方式更改无线蓝牙 radio 电源管理 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57620672/