C# Not Supported?

本文关键字:Supported Not | 更新日期: 2023-09-27 17:56:57

我有以下...

using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
    public class CallWMIMethod
    {
        public static ushort GetMonitorBrightness() {
            using (var mclass = new ManagementClass("WmiMonitorBrightness")) {
                mclass.Scope = new ManagementScope(@"''.'root'wmi");
                using (var instances = mclass.GetInstances()) {
                    foreach (ManagementObject instance in instances) {
                        return (byte) instance.GetPropertyValue("CurrentBrightness");
                    }
                }
            }
            return 0;
        }
        public static void SetMonitorBrightness(ushort brightness) {
            using (var mclass = new ManagementClass("WmiMonitorBrightnessMethods")) {
                mclass.Scope = new ManagementScope(@"''.'root'wmi");
                using (var instances = mclass.GetInstances()) {
                    foreach (ManagementObject instance in instances) {
                        object[] args = new object[] { 1, brightness };
                        instance.InvokeMethod("WmiSetBrightness", args);
                    }
                }
            }
        }
        public static void Main()
        {
            Console.WriteLine (GetMonitorBrightness());
        }
    }
}

这是使用 WMI 获取显示器亮度的非常基本的事情。但我似乎无法运行它,我一直在foreach (ManagementObject instance in instances) {收到关于System.Management.ManagementException - Not supported的错误,我不确定发生了什么。我正在使用 monodevelopment 来编译它。它编译正常,只是在尝试运行时死亡。我使用的是Windows 7,所以不是那样。WMI 服务正在运行。

我不确定发生了什么。

C# Not Supported?

Mono 兼容性页面明确指出 System.Management 未实现也不支持,因为 Linux 没有 WMI 等对应的部分。

http://mono-project.com/Compatibility

你必须包装Linux原生API来实现你试图在Windows上做的事情,这显然是你应该发布的另一个问题。

问题可能是由于您自己的显卡驱动程序(它们是最新的)?

谷歌搜索网络(寻找"不支持WmiMonitorBrightness")有很多用户有自己的问题,特别是在笔记本电脑/笔记本电脑上(其中一些在将视频驱动程序升级到最新版本后修复...你呢?

无论如何,在StackOverflow上已经有一个非常相似的问题:你可以在这里找到它。