Ajustez la luminosité de l’écran à l’aide de C #

Comment ajuster la luminosité de l’écran en C #?

Merci.

Examinez la fonction API SetDeviceGammaRamp . Voici un article de CodeProject décrivant son utilisation à partir de C #: Définition de la luminosité de l’écran en C #

Sachez que votre carte graphique doit supporter cela, je suppose que la plupart des cartes modernes le font, mais je ne le sais pas.

Edit: Comme l’article CodeProject semble être en panne, un autre endroit pour savoir comment l’appeler à partir de C # est sur le site pInvoke .

Je viens de trouver la fonction SetMonitorBrightness sur MSDN .

Ceci ajuste la luminosité réelle de l’écran, mais elle n’est pas prise en charge partout:

http://www.codeproject.com/Articles/236898/Screen-Brightness-Control-for-Laptops-and-Tablets

En fait, vous pouvez utiliser SetDeviceGammaRamp() pour définir la luminosité de l’écran en C #.

Créez une nouvelle application de formulaire Windows et copiez le code suivant. Il suffit de faire glisser une barre de suivi et un bouton vers les fenêtres.

 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Runtime.InteropServices; namespace brightnesscontrol { public partial class Form1 : Form { [DllImport("gdi32.dll")] private unsafe static extern bool SetDeviceGammaRamp(Int32 hdc, void* ramp); private static bool initialized = false; private static Int32 hdc; private static int a; public Form1() { InitializeComponent(); } private static void InitializeClass() { if (initialized) return; hdc = Graphics.FromHwnd(IntPtr.Zero).GetHdc().ToInt32(); initialized = true; } public static unsafe bool SetBrightness(int brightness) { InitializeClass(); if (brightness > 255) brightness = 255; if (brightness < 0) brightness = 0; short* gArray = stackalloc short[3 * 256]; short* idx = gArray; for (int j = 0; j < 3; j++) { for (int i = 0; i < 256; i++) { int arrayVal = i * (brightness + 128); if (arrayVal > 65535) arrayVal = 65535; *idx = (short)arrayVal; idx++; } } bool retVal = SetDeviceGammaRamp(hdc, gArray); return retVal; } private void trackBar1_Scroll(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { a = trackBar1.Value; SetBrightness(a); } } } 

Peut-être devrez-vous modifier les valeurs maximale et minimale de la barre de suivi.

Vous pouvez suivre le tutoriel ici. Plus de photos et de détails: http://www.lattepanda.com/topic-f11t3020.html?sid=f9dc5d65cd4f2feb3c91ca41196c087e