如何从java应用程序更改笔记本电脑的屏幕亮度?
答
我不认为有一个标准的API在Java中这样做。
但是,似乎你可以在Windows中使用.NET。请参阅: What API call would I use to change brightness of laptop (.NET)?
您始终可以使用JNI接口调用用C++编写的本地方法 - 因此这可能是一种解决方法。
答
正如其他人所说,没有任何官方的API使用。然而,使用Windows Powershell(它与Windows相信,所以不需要下载任何东西)和WmiSetBrightness,可以创建一个简单的解决方法,应该适用于签证或以后安装的所有Windows PC。
所有你需要做的就是这个类复制到您的工作空间:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BrightnessManager {
public static void setBrightness(int brightness)
throws IOException {
//Creates a powerShell command that will set the brightness to the requested value (0-100), after the requested delay (in milliseconds) has passed.
String s = String.format("$brightness = %d;", brightness)
+ "$delay = 0;"
+ "$myMonitor = Get-WmiObject -Namespace root\\wmi -Class WmiMonitorBrightnessMethods;"
+ "$myMonitor.wmisetbrightness($delay, $brightness)";
String command = "powershell.exe " + s;
// Executing the command
Process powerShellProcess = Runtime.getRuntime().exec(command);
powerShellProcess.getOutputStream().close();
//Report any error messages
String line;
BufferedReader stderr = new BufferedReader(new InputStreamReader(
powerShellProcess.getErrorStream()));
line = stderr.readLine();
if (line != null)
{
System.err.println("Standard Error:");
do
{
System.err.println(line);
} while ((line = stderr.readLine()) != null);
}
stderr.close();
}
}
然后调用
BrightnessManager.setBrightness({brightness});
凡{亮度}是你要设置在同屏显示亮度0是最暗的支撑亮度,100是最亮的。
非常感谢anquegi为powershell代码找到了here,我适应了这个命令。
遗憾的是它不work.It给出的Windows'10->标准错误此错误: 获取-WmiObject可以:不支持 在行:1个字符:42 + ... myMonitor = GET-WmiObject可以 - 命名根\ WMI -Class WmiMonitorBright ... +' – GOXR3PLUS 2017-01-31 06:43:40
Resume-> '+ CategoryInfo:InvalidOperation:(:) [获取-WmiObject可以],ManagementException + FullyQualifiedErrorId:GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand 你不能调用一个空值表达式的方法。 在线:1 char:111 + ... torBrightnessMethods; $ myMonitor.wmisetbrightness($ delay,$ brightness) + ~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~信息类别信息:InvalidOperation: – GOXR3PLUS 2017-01-31 06:43:56