我们有一些代码来对抗笔记本电脑上的亮度变暗。它依赖于 System.Management 调用。它在笔记本电脑上运行良好,但在没有电源管理的 PC 上抛出异常:System.Management.ManagementException “不支持” 我不想让它工作(见System.Management.ManagementException),但只想检测不支持的情况,然后提前退出以避免抛出异常。有没有办法这样做?
我尝试在 stackoverflow 和其他互联网上寻找相同或类似的问题。
目前我正在使用 try catch 来处理这个问题,但不想依赖它。
System.Management.ManagementScope s = new System.Management.ManagementScope("root\\WMI");
System.Management.SelectQuery q = new System.Management.SelectQuery("WmiMonitorBrightness");
System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(s, q);
try {
System.Management.ManagementObjectCollection moc = mos.Get();
foreach (System.Management.ManagementObject o in moc) { // exception here
...
实际:System.Management.ManagementException“不支持”
预期:应该更早地测试支持,如果不支持则退出