在我这台笔记本上,当我把显示模式调为读显时发现右下角的亮度不能调了,就像这样
听说时nvidia显卡不适配的问题 咱也不知道呀
于是我就用java写了程序来调节,用了俩个多月,没啥问题的
打开就是这样拉动直接就可以调节
源码
import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.io.IOException; import java.util.TreeSet;public class LightControl {public static void main(String[] args) {//创建一个白板窗口JFrame frame = new JFrame("Brightness Control");//获得一个滑动干 并初始话滑动杠 最小0 最大100 初始值50JSlider brightnessSlider = new JSlider(0, 100, 50);//获得一个标签 初始表签JLabel brightnessLabel = new JLabel("Brightness: 50");//设置主键个空隙 下方显示的数字之间的间隙brightnessSlider.setMajorTickSpacing(10);//设置最小刻度间隔空隙 // brightnessSlider.setMinorTickSpacing(5);//是否需要刻度标记brightnessSlider.setPaintTicks(false);//滑条下是否需要数字标记brightnessSlider.setPaintLabels(true);//获得滑块的值brightnessSlider.addChangeListener(new ChangeListener() {@Overridepublic void stateChanged(ChangeEvent e) {//获得滑块对应的值int brightness = brightnessSlider.getValue();//更改滑条下方显示的值brightnessLabel.setText("Brightness: " + brightness);// 在这里可以添加实际的亮度调节代码RunToCmd(brightness);}});//面板JPanel panel = new JPanel();//为面板加入滑块panel.add(brightnessSlider);//为面板加入标签panel.add(brightnessLabel);//最终添加到面板中frame.add(panel);//面板初始大小frame.setSize(300, 200);//默认退出方式frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口可见frame.setVisible(true);//窗口的初始位置frame.setLocation(1100,550);}private static void RunToCmd(int brightness) {String instruct = "WMIC /NAMESPACE:\\\\root\\wmi PATH WmiMonitorBrightnessMethods WHERE \"Active=TRUE\" CALL WmiSetBrightness Brightness="+ brightness+" Timeout=0"; // System.out.println(instruct);//执行cmd命令try { // System.out.println(instruct);Runtime.getRuntime().exec(instruct);} catch (IOException io) {io.getLocalizedMessage();}}}
创建个项目复制粘贴就好了
不过要注意的是这个项目不能直接再桌面就运行,因为这个源码你还不能直接就运行到JVM虚拟机上,这里要想放在桌面直接运行
像这样的话有俩种方法
一是通过exe4j将他变成可执行程序,这个可以自己去搜下教程 我是用的就是用这个搞得
要注意这个可执行程序必须和你的jar包再一个目录下,不然跑不起,我踩过这坑
第二种 比较简单,因为我发现你把这个程序打成就jar包就可以直接运行了,而且你通过exe4j把他变成了可执行文件再执行时其实就是执行的时jar包,所以为何不直接就执行jar包呢,我试了下可以,也可以创建个快捷方式 到桌面照样正常使用
至于如何打jar包的话,去搜下教程把,他们说的比我好 hhh