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。可能重复。请检查是否有帮助