Click here to Skip to main content
15,867,453 members
Articles / Programming Languages / C#

Screen Brightness Control for Laptops and Tablets

Rate me:
Please Sign up or sign in to vote.
4.83/5 (26 votes)
7 Aug 2011CPOL3 min read 85.1K   13.3K   38   20
A tiny program for quickly adjusting the screen brightness of your laptop or tablet PC
Screenshot

Introduction

With this little tool, you can quickly adjust the screen brightness of your laptop or tablet. It also supports commandline arguments to fit your needs.

Background

I recently bought a tablet and wasn't quite satisfied with how to change the screen brightness. So I searched the web for a simple solution - but had no success. First, I hit on the IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS Control but many people struggled with invoking it in C# - in fact, I found only one person that seemed to have managed it... but this thread was closed and I found no way to contact him - *lol* - so I tried another workaround some people suggested and screwed up my gamma and contrast settings - haha - finally I found this page of Samuel Lai - he made a simple sidebar gadget using WMI to access the screen brightness control and also provided some code - funny, as during my search I often read people saying that there is no support in C#. Later on, I realized that I should have taken a closer look at the IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS Control site as Microsoft says here that this control is no longer supported and one should use the WmiMonitorBrightness Class... O.K., whatever - enough blabla :)

Using the Code/Program

The Program

I've tested the program on Win7 (x86) - AFAIK, it won't work on ordinary PCs, as they don't have the necessary hardware support for this. In case of an incompatible system, a message will pop up and the program will quit.

I used VS2010 and .NET 4 for building - therefore, you will need .NET 4 to run the program and VS2010 to change the code... probably you can use a lower version of VS, but AFAIK, the designer isn't compatible.

Well, when starting the program without arguments, it will hide and an icon shows up in the taskbar infoarea. The trackbar shows up by clicking on the icon. Right clicking the icon will open an exit popup.

Arguments

  • quit - The trackbar shows up and will close after 4 secs of inactivity.
  • show - The trackbar shows up and will hide after 4 secs of inactivity.
    Well, in fact, you can type anything in order to gain this result - unless it's not listed here as argument...^^
  • hide - will hide the form initially - this is only useful in combination with a brightnesslevel statement:
  • brightnesslevel in % - You can pass a level statement to set the brightness immediately (e.g. 25% ) - the level is set to the next higher available level, if the argument is not in the level array

Arguments are seperated by blanks!
e.g. ScreenBrightness 10% quit
ScreenBrightness hide 55%
The order of the arguments is not relevant.

The Code

Well, I've used the WMI queries from Samuel Lai and wrapped around the visual stuff...
The WmiMonitorBrightness class offers a handful of read-only properties about the actual brightness settings: Active, CurrentBrightness, InstanceName, Level and Levels.

A point of interest might be the Level property as it is an array of valid brightnesslevels supported by the hardware. They may differ from machine to machine. E.g. my laptop has only 7 levels while my tablet has 10.

My app has only support for one screen - if you have multiple screens, you'll need to query each separately, as I've understood... though I don't see a method for setting the brightness for an individual screen...?

The WmiMonitorBrightnessMethods class is used for setting the screen brightness via the WmiSetBrightness method.

So far, hope you'll like it! :)
Cheers,
Stephan

History

  • 4th August, 2011: Initial version
  • 6th August, 2011: Minor update
    • Included actual brightness value in tooltip text of icon
    • Actual brightness value of form will refresh when opening form or moving mouse over icon

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer Engineering office for automation Dr. Lupp
Germany Germany
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionHELP! Convert to VB ? Pin
InfinityJoe10-Dec-17 2:23
InfinityJoe10-Dec-17 2:23 
AnswerRe: HELP! Convert to VB ? Pin
stepe6-Mar-18 3:37
stepe6-Mar-18 3:37 
QuestionCan you add more code explanation? Pin
Kunal Chowdhury «IN»26-Jan-17 23:40
professionalKunal Chowdhury «IN»26-Jan-17 23:40 
QuestionNegative backlight value Pin
Prittyokname1-Feb-15 14:30
Prittyokname1-Feb-15 14:30 
QuestionUSB display Pin
ankit_sam28-Jun-13 17:30
ankit_sam28-Jun-13 17:30 
Generalworks! Pin
Member 95672142-Nov-12 9:32
Member 95672142-Nov-12 9:32 
Questioncan't run in my computer Pin
ainichenwei13-Sep-12 18:00
ainichenwei13-Sep-12 18:00 
AnswerRe: can't run in my computer Pin
stepe14-Sep-12 5:42
stepe14-Sep-12 5:42 
AnswerRe: can't run in my computer Pin
stepe14-Sep-12 6:14
stepe14-Sep-12 6:14 
O.k., I think You are running it on a pc?
PCs don't support this control, as I mentioned above...
Sorry
GeneralMy vote of 4 Pin
artal yetmisuc18-Aug-12 10:48
artal yetmisuc18-Aug-12 10:48 
QuestionNice Work Pin
Mc Gwyn26-Sep-11 23:32
Mc Gwyn26-Sep-11 23:32 
AnswerRe: Nice Work Pin
stepe26-Sep-11 23:51
stepe26-Sep-11 23:51 
GeneralRe: Nice Work Pin
Mc Gwyn27-Sep-11 1:09
Mc Gwyn27-Sep-11 1:09 
GeneralMy vote of 5 Pin
TeapotDev8-Aug-11 3:12
TeapotDev8-Aug-11 3:12 
GeneralMy 5..... Pin
MaulikDusara7-Aug-11 17:39
MaulikDusara7-Aug-11 17:39 
QuestionMy vote of 5 Pin
Filip D'haene5-Aug-11 22:53
Filip D'haene5-Aug-11 22:53 
AnswerRe: My vote of 5 Pin
stepe6-Aug-11 11:17
stepe6-Aug-11 11:17 
GeneralMy vote of 5 Pin
mbcrump5-Aug-11 9:38
mentormbcrump5-Aug-11 9:38 
SuggestionThis worked better for me... Pin
andre123455-Aug-11 6:50
andre123455-Aug-11 6:50 
GeneralRe: This worked better for me... Pin
stepe5-Aug-11 7:08
stepe5-Aug-11 7:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.