WMI控制亮度只適用於筆電螢幕;不能用在外接螢幕(DDC/CI)
使用了WmiMonitorBrightness及WmiMonitorBrightnessMethods
exe執行檔下載using System.Management;
public void SetBrightness(byte brightness)
{
var scope = new ManagementScope("root\\WMI");
var query = new SelectQuery("WmiMonitorBrightnessMethods");
using (var searcher = new ManagementObjectSearcher(scope, query))
{
foreach (ManagementObject obj in searcher.Get())
{
// 參數 0 = timeout,brightness = 亮度
obj.InvokeMethod("WmiSetBrightness",
new object[] { UInt32.MaxValue, brightness });
}
}
}
public byte GetCurrentBrightness()
{
var searcher = new ManagementObjectSearcher(
"root\\WMI",
"SELECT * FROM WmiMonitorBrightness"
);
foreach (ManagementObject obj in searcher.Get())
{
return (byte)obj["CurrentBrightness"];
}
throw new Exception("無法讀取螢幕亮度");
}
private void button1_Click(object sender, EventArgs e)
{
try
{
byte brightness = GetCurrentBrightness();
textBox1.Text = brightness.ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
throw new Exception("無法讀取螢幕亮度"); 主動「丟出錯誤」,中斷目前流程,通知呼叫端發生異常狀況。
配合try / catch使用
留言
張貼留言