我将使用什么API调用来改变笔记本电脑(.NET)的亮度?

Sim*_*ver 9 .net api winapi brightness

我在Sony笔记本电脑上安装了Windows Server 2008,亮度控制不起作用.我想写一个程序让我改变它.

目前我要做的是打开电源控制面板,点击高级设置,并通过如此多的UAC盒子进行战斗,任何看着我的人都必须认为我完全疯了.

我只想要一个简单的小程序来做,但我不知道要调用什么API

Luc*_*cas 9

我在MSDN中查找了John RudyWmiSetBrightness的链接,并想出了这个:

ManagementClass mclass = new ManagementClass("WmiMonitorBrightnessMethods");
mclass.Scope = new ManagementScope(@"\\.\root\wmi");
ManagementObjectCollection instances = mclass.GetInstances();

// I assume you get one instance per monitor
foreach(ManagementObject instance in instances)
{
    ulong timeout = 1; // in seconds
    ushort brightness = 50; // in percent
    object[] args = new object[] { timeout, brightness };
    instance.InvokeMethod("WmiSetBrightness", args);
}
Run Code Online (Sandbox Code Playgroud)

注意:ManagementClass,ManagementObjectCollection并且ManagementObject全部实现IDisposable.您应该打电话Dispose()或使用" using"以避免资源泄漏.