c# 多种方法调整屏幕亮度

匿名 (未验证) 提交于 2019-12-02 22:06:11

https://github.com/CHNMaxGor/AjustScreenBrightness

方法一: 使用网上常说的 Gdi32.dll 下的 SetDeviceGammaRamp (修改系统Gamma)

DllImport("gdi32.dll")] public static extern bool GetDeviceGammaRamp(IntPtr hDC, ref RAMP lpRamp);
[DllImport("gdi32.dll")] public static extern bool SetDeviceGammaRamp(IntPtr hDC, ref RAMP lpRamp);

方法二: 使用MSDN上的 dxva2.dll SetMonitorBrightness

 1 [DllImport("dxva2.dll")]  2 public static extern bool GetNumberOfPhysicalMonitorsFromHMONITOR(IntPtr hMonitor, ref uint pdwNumberOfPhysicalMonitors);  3   4 [DllImport("dxva2.dll")]  5 public static extern bool GetPhysicalMonitorsFromHMONITOR(IntPtr hMonitor,  6                 uint dwPhysicalMonitorArraySize, [Out] PhysicalMonitor[] pPhysicalMonitorArray);  7   8 [DllImport("dxva2.dll")]  9 public static extern bool DestroyPhysicalMonitors(uint dwPhysicalMonitorArraySize, 10                 [Out] PhysicalMonitor[] pPhysicalMonitorArray); 11  12 [DllImport("dxva2.dll")] 13 public static extern bool GetMonitorTechnologyType(IntPtr hMonitor, 14                 ref McDisplayTechnologyType pdtyDisplayTechnologyType); 15  16 [DllImport("dxva2.dll")] 17 public static extern bool GetMonitorCapabilities(IntPtr hMonitor, ref uint pdwMonitorCapabilities, 18                 ref uint pdwSupportedColorTemperatures); 19  20 [DllImport("dxva2.dll")] 21 public static extern bool SetMonitorBrightness(IntPtr hMonitor, short brightness); 22  23 [DllImport("dxva2.dll")] 24 public static extern bool SetMonitorContrast(IntPtr hMonitor, short contrast); 25  26 [DllImport("dxva2.dll")] 27 public static extern bool GetMonitorBrightness(IntPtr hMonitor, ref short pdwMinimumBrightness, 28                 ref short pdwCurrentBrightness, ref short pdwMaximumBrightness); 29  30 [DllImport("dxva2.dll")] 31 public static extern bool GetMonitorContrast(IntPtr hMonitor, ref short pwdMinimumContrast, 32                 ref short pwdCurrentContrast, ref short pwdMaximumContrast);

方法三: 使用 C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_neutral_3daeca3838e011e0\igfxDHLib.dll (这是驱动的文件,不同机器有自己对应的驱动文件)

DataHandlerClass _cls = new DataHandlerClass(); _CUI_COLOR_DEVICES _screenModel = default(_CUI_COLOR_DEVICES);  public AjustScreenByIgfxDHLib() {     CUI_SUPPORTED_CONFIG cui_SUPPORTED_CONFIG = default(CUI_SUPPORTED_CONFIG);     uint num = _cls.get_SupportedConfig(ref cui_SUPPORTED_CONFIG);     var id = cui_SUPPORTED_CONFIG.DeviceConfig[0].DispDev[0];     uint[] array = new uint[3];     var a = _cls.get_GetDeviceList(id, array);     _screenModel.ulDevices = array[0];     _screenModel.Device = new _CUI_COLOR_INFO[3];     _screenModel.Device[0].Brightness.color = _COLOR_TYPE.NumColors;     _screenModel.Device[0].Contrast.color = _COLOR_TYPE.NumColors;     _screenModel.Device[0].Gamma.color = _COLOR_TYPE.NumColors;     _screenModel.Command = _CUI_COLOR_COMMAND.GET_COLOR;     _cls.get_color(_screenModel.ulDevices, ref _screenModel); } 

  

注意事项

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!