C# 不支持?

C# 不支持?,c#,mono,wmi,C#,Mono,Wmi,我有以下几点 using System; using System.Management; using System.Windows.Forms; namespace WMISample { public class CallWMIMethod { public static ushort GetMonitorBrightness() { using (var mclass = new ManagementClass("WmiMonito

我有以下几点

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实例)中不断遇到错误{
关于
System.Management.ManagementException-不受支持
我不确定发生了什么事。我正在使用monodevelop编译它。它编译得很好,只是在尝试运行时死掉。我在Windows 7上,所以不是这样。WMI服务正在运行


我不确定发生了什么。

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

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


无论如何,StackOverflow上已经有一个非常类似的问题:您可以找到它。

Mono compatibility页面明确指出System.Management没有实现,也不受支持,因为Linux没有WMI的计数器部分等等


您必须包装Linux本机API以实现您在Windows上尝试执行的操作,这显然是您应该发布的另一个问题。

Mono似乎不理解WMI…WMI假定为Windows独有的东西..因为W代表Windows。可能重复。请检查是否有帮助