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 服务正在运行。
我不确定发生了什么。
Mono 兼容性页面明确指出 System.Management 未实现也不支持,因为 Linux 没有 WMI 等对应的部分。
http://mono-project.com/Compatibility
你必须包装Linux原生API来实现你试图在Windows上做的事情,这显然是你应该发布的另一个问题。
问题可能是由于您自己的显卡驱动程序(它们是最新的)?
谷歌搜索网络(寻找"不支持WmiMonitorBrightness")有很多用户有自己的问题,特别是在笔记本电脑/笔记本电脑上(其中一些在将视频驱动程序升级到最新版本后修复...你呢?
无论如何,在StackOverflow上已经有一个非常相似的问题:你可以在这里找到它。