Respuesta
Mire la función de API SetDeviceGammaRamp. Hay un artículo de CodeProject que describe cómo usarlo desde C# aquí: Setting Screen Brightness in C#
Sin embargo, tenga en cuenta que su tarjeta gráfica tiene que admitir esto, supongo que la mayoría de las modernas lo hacen, pero no sé.
Editar: Dado que el artículo de CodeProject parece estar fuera de servicio, otro lugar para averiguar cómo llamarlo desde C# es en el pInvoke site.
Este ajustar el brillo real de la pantalla, pero no se admite en todas partes:
http://www.codeproject.com/Articles/236898/Screen-Brightness-Control-for-Laptops-and-Tablets
acaba de encontrar la función SetMonitorBrightness
en MSDN.
¿Ha logrado implementar esta función? Otros métodos mencionados aquí no funcionan en todas las circunstancias, especialmente cuando dos tarjetas de video están conectadas (usando PCI-E y ranuras PCI antiguas) en Windows 10. –
Actualmente, puede usar SetDeviceGammaRamp()
para configurar el brillo de la pantalla en C#.
Cree una nueva aplicación de formulario de Windows y copie el siguiente código. Simplemente arrastre una barra de seguimiento y un botón a las ventanas.
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);
}
}
}
Tal vez necesite cambiar el valor máximo y mínimo de la barra de seguimiento.
Puedes seguir el tutorial aquí. Más imágenes y detalles: http://www.lattepanda.com/topic-f11t3020.html?sid=f9dc5d65cd4f2feb3c91ca41196c087e
- 1. Ajuste el brillo de la pantalla a través del código
- 2. Cambiar brillo de la pantalla (C#)
- 3. C# configuración brillo de pantalla Windows 7
- 4. Ajuste del brillo de la pantalla en un dispositivo de HTC Sense
- 5. cambiando el brillo de la pantalla programáticamente en android
- 6. Mostrar imagen de la pantalla de bienvenida con ajuste automático
- 7. Valor de brillo de pantalla en Android
- 8. Brillo de pantalla de Android ¿Valor máximo?
- 9. Pantalla de ajuste de imagen en WebView
- 10. jQuery Resolución de pantalla Ajuste de altura
- 11. ¿Cómo obtener el brillo de la pantalla actual en el código de Android de forma dinámica?
- 12. Efecto de brillo de pantalla en WPF o Silverlight
- 13. Actualizar Brillo de pantalla en Android después de cambiarlo programáticamente
- 14. Pantalla GNU y VIM: ajuste del tamaño del búfer de la ventana dividida con el mouse
- 15. ¿Cómo puedo cambiar el brillo de la pantalla de mi computadora portátil en ubuntu?
- 16. iPhone: ¿Cómo podemos cambiar el brillo de la pantalla de forma programática?
- 17. ¿Hay alguna manera de ajustar el brillo de la pantalla programáticamente?
- 18. Ajuste de pantalla completa a cabo onCreate
- 19. Cambio del brillo de la pantalla en el emulador de Android
- 20. Hacer un ajuste div en la pantalla inicial
- 21. Android: ajuste los tamaños de forma programática de acuerdo con el tamaño de pantalla
- 22. Dim la pantalla en Windows con C++
- 23. Hacer una ventana de Qt con ajuste automático al tamaño de la pantalla
- 24. Cómo hacer que x11vnc ajuste la resolución con la pantalla del cliente
- 25. no se puede aplicar sistema de brillo de la pantalla mediante programación en Android
- 26. Agregar controles de brillo de pantalla a la aplicación de Android
- 27. UIScreen Brillo Propiedad
- 28. Ícono de problemas de brillo con el ícono LARGE 512
- 29. Ajuste del objetivo C en el objetivo C++/C++
- 30. Brillo de la imagen con html5/CSS/JS
Este no es el brillo real. Es gamma. Es solo una ilusión de brillo – cricardol
Bueno, eso, y el enlace de CodeProject está muerto. Con CodeProject siendo CodeProject, eso puede no ser tan malo. – IInspectable
@IInspectable Gracias, actualizó la respuesta con otro enlace. –