ClickMonitorDDC  5.8

Martin <>


Download Portable Version
can be run without Installation

Download Setup Version

uses Windows Install/Uninstall
      Click taskbar notification icons to adjust the real monitor-backlight-brightness/contrast
      or use mouse wheel over notification icon to increase/decrease corresponding value,
      much more comfortable and faster than manually messing around with monitor buttons,
      works with external monitors (DDC-protocol) and Laptop-LCD-display.

      The notification icons inform you about the monitor values,
      you simply look at the icons to check if the wanted values are already set.
      You can change monitor values by using sliders or clicking buttons,
      but you can also create powerful command lines, which can be used in batch files
      or popup menu entries or be appended in icon properties shortcut target.
      You can also define hot keys or mouse wheel combinations for executing command-lines,
      this even works in fullscreen-games!

      A command line can consist of multiple arguments, for instance b 20 c 30
      sets monitor brightness 20 and contrast 30.
      b + 6 c - 8 increases actual brightness by 6 and decreases contrast by 8
      optionally you can prepend monitorname, modelname, serialnumber or monitornumber.
      2 b + 10 increases brightness of second monitor by 10
      PL2779Q b 36 sets brightness 36 for monitor with name PL2779Q
      use for monitorname or modelname or serialnumber at least two chars.
      select monitor-color-profile, for instance p 6500K
      change user-profile-colors, r for red, g for green, bl or l for blue, range 0-255
      select monitor-input s HDMI1 s DisplayPort1 s DVI1 (or HDMI2 DisplayPort2 DVI2)
      v 90 sets volume to 90%, v + 10 increases volume by 10%, v-8 decreases by 8%
      m for mute volume, u for unmute, x for shutting off monitors, q quits program.
      t b 0 c 0 t b 90 c 80 toggles between b 0 c 0 and b 90 c 80

      ClickMonitorDDC requires Windows 7, 8 or 10.
      You use this software at your own risk, I disclaim any responsibility for any harm.
      You are allowed to use and spread this program for free.

       optional Argument         optional      Value      Description
  If you are using multiple monitors, b + or -     0 up to 100      sets brightness.
  you can start command-line with c + or -     0 up to 100      sets contrast.
  selecting a special monitor,        
  the following arguments will be p       6500K      select a color-temperature,
  applied to this selected monitor.      possible temperatures are listed
  If you do not select a monitor,            in ClickMonitorDDC-RGB-area,
  the monitor under cursor can be            if you want to create your own color-temperature,
  auto-selected (option in Settings).      select User-color-temperature and modify colors
  You can select a Monitor by Monitorname,            by changing red/green/blue-luminance.
  Modelname, Serialnumber or Monitornumber. r + or -     0 up to 255      sets red-luminance.
  Monitorname is listed in g + or -     0 up to 255      sets green-luminance.
  ClickMonitorDDC-window.       bl or l or i + or -     0 up to 255      sets blue-luminance.
  If you pause the mouse pointer over        
  the listed monitor there will appear s       HDMI1      select a monitor-input, usable input-names
  a tooltip-window with Modelname,            are listed in ClickMonitorDDC-RGB-area.
  Serialnumber and so on, but not all o + or -     0 up to 100      Monitor-speaker/Audio-out-volume
  Monitors deliver these informations. v + or -     0 up to 100      sets volume
  Monitornumber means position of the m      mutes volume
listed monitor, but using monitornumber u      unmutes volume
  is not recommended, because sometimes w          rotates display orientation clockwise by 90 degrees
  Windows changes positions. x          all monitors off (or specify monitorname x)
  When specifying Monitorname, Modelname q          terminates ClickMonitorDDC
  or Serialnumber, omit spaces, z          restarts ClickMonitorDDC
  for instance   HP w2207 f          restore default Monitor-factory-settings
  must be written as   HPw2207 ?          notification about current brightness/contrast/volume
  or use   "HP w2207" t          for instance t b 0 c 0 t b 90 c 80     
               toggles between b 0 c 0 and b 90 c 80 
    ;          pauses 100 ms
    ,          pauses 1000 ms
    d          returns current Monitor-brightness, 
    e          returns current Monitor-contrast,
     may be useful in batch files.
You can use multiple arguments in one commandline (maximum length 259 chars), for instance PL2779Q b + 10 c - 5 HPw2207 b 23 c 49

more informations

      For controlling your monitor over monitorcable, a fully functional graphics driver has to be installed, (AMD, NVIDIA, INTEL should work)
      and make sure your monitor has DDC/CI-protocol enabled, also your monitor must support MCCS (VESA Monitor Control Command Set),
      but monitors differ in implementing MCCS, so not all arguments may work, especially selecting color-profiles and inputs are often not fully supported,
      besides some monitors offer predefined game and film-modes with fixed values, which prevents some arguments from working.

      ClickMonitorDDC is managed by its notification icons, therfore make sure that these icons are not hidden, but shown on the taskbar notification area.
      windows 7: right click taskbar, click properties, click customize notification area,
      windows 10: right click taskbar, Settings, Select which icons appear on the taskbar.
      If you want to change the sequence of taskbar icons, simply drag and drop the icon.

      ClickMonitorDDC was primarily developed to control external monitors in the most user-friendly way, for instance use mouse-wheel over icons or define hot-keys and so on.
      Internal Laptop-LCD have built-in brightness-support by using FN-keyboard-keys or windows-sliders, but ClickMonitorDDC can also speed up handling of internal Laptop-LCD.
      ClickMonitorDDC shows values between 0 - 100, which is fine with external monitors,
      but some internal LCD-displays support less brightness-levels, the nearest level is chosen automatically.

If you don't prepend a monitornumber, monitorname, modelname or serialnumber in command-lines, then the commands affect the default monitor,
      which is the selected monitor in ClickMonitorDDC-window, you can select another monitor as default. If you run multiple monitors,
      then ClickMonitorDDC automatically sets the monitor under the cursor as default monitor, you can disable this feature in settings.

      ClickMonitorDDC can create menu-popup-entries for executing command-lines, if you enter an additional comment,
      you can show or hide the corresponding commandline.

      ClickMonitorDDC offers in settings an option named 'show notifications'
If you set values directly in ClickMonitorDDC-window, this option has no effect, but if you press defined hot keys and ClickMonitorDDC-window is invisible,
      then setting this option gives you an optical feedback, what the pressed hot key did.

      ClickMonitorDDC supports easy to use command-line-arguments, maybe the rarely used toggle-feature needs some extra explanation.
      for instance define a hotkey with this commandline
      t b 0 c 0 t b 100 c 100
      first time you press the hotkey, you set monitor brightness 0 and contrast 0,
      second time you press the same hotkey, you will set brightness 100, contrast 100,
      third time behaves like first time and so on, this way using one hotkey, you can execute two different profiles in turn.

      In special settings, you can define up to 8 times to auto-run-command-lines. Unchecking the corresponding checkbox deactivates the command-line.
      If the time-condition is fulfilled then the command-line is executed one-time per day, not permanently like some other software-color-filter-programs do.
      ClickMonitorDDC instead changes the real internal monitor-hardware-values. Monitor-values are stored in EEPROM inside monitor.
      If EEPROMS are excessively written (at least more than 100000) they could lose storage-functionality, so more a theoretical issue.
      But for safety ClickMonitorDDC does not continuously write to monitor.
      Also executing auto-command-lines only one time allows you still changing values as you want.
      07:00  AM b 30
      08:00  AM b 40
      09:00  AM b 50
      07:30  PM b 40
      08:20  PM b 30
      08:40  PM b 20
      If you boot up your computer at 02:00 PM then the nearest past time-command b 50 is executed one-time per day, at 7:30 PM b 40 will be executed one-time.
      You can force executing command-line again by restarting ClickMonitorDDC, really exit and start again or use rescan monitors,
      simply double-clicking ClickMonitorDDC will have no effect, because ClickMonitorDDC does not start again, if already running.
      Alternatively entering and leaving ClickMonitorDDC-settings will also check and run auto-run-command-line.
      You could also execute command-lines with multiple arguments
      07:00 AM  b 10 c 20 l 250
      08:00 AM  b 20 c 25 l 252
      This would increase brightness, contrast and blue-luminance.



Now you can power off a single monitor by clicking a checkbox beside the listed monitor.
Some unusual multi-monitor-setup could result in additional useless orphaned notification icons, which disappeared only on mouse over. Fixed.


Improved settings of notification icons. There is also a new notification icon for a possible monitor speaker.
Turning on/off a monitor connected by DisplayPort could open window and leave icons behind. Fixed.


Now you can rotate display orientation clockwise by 90 degrees, can also be done by hot key with new argument w
A few monitors report erroneously success if still processing a previous command, now you can separate commands by ; (pauses 100 ms) , (pauses 1000ms)
for instance r 255 , g 255 , bl 255 would give the monitor enough time to process each command, but normally these pauses are not needed


Latest versions handled laptop-LCD's in a different way, which did not work with some laptops,
now the old reliable method is used again, which should work with any laptops.
Most messageboxes can now be suppressed.


ClickMonitorDDC can control default-volume by slider, buttons or argument v
There is a new slider in main-window-RGB-area for monitor-speaker/Audio-out-volume, or use new argument o
Right click listed monitor, select dim monitor, enter time-period of inactivity and dim-brightness.


Restore last values, hiding icons, ignore monitor now differentiates identical monitors.
Right click listed monitor to modify its name, maybe useful for identical monitors.


In settings there are new buttons to check for update version.
If you right click a listed monitor in main window, then you can hide or show the icons for this monitor,
also you can determine not to read values from a device, maybe useful if AV receiver, saves 100 ms.


some minor bug-fixes regarding icons, tooltips, utilize monitors.


New option: When ClickMonitorDDC starts, last brightness and contrast values will be restored, may be useful if monitor forgets set values after power off.
New options for (de)activating hot keys or mouse wheel. If deactivated, corresponding hook is not installed.
Now you can set a repeat delay value for hot keys or mouse wheel, useful if you want to slow down increasing/decreasing commands like for instance b + 10


New Log-File option in settings, may be useful for informational or debugging purposes.
You can choose any name or location for protocol-file, default is ClickMonitorDDC.txt in userprofile-directory.
Runing ClickMonitorDDC with argument f will restore default Monitor-factory-settings, equivalent to clicking 'Reset Monitor' in ClickMonitorDDC-Window.


Sometimes volume-icon was automatically added. fixed.

Verify values: After set value, read value from monitor, to check success, because a few monitors report success, but in fact there was no change,
costs additional 50 ms.
Save values: A few monitors forget changes done by user over monitorcable after powering off, this option makes sure that values are really stored in monitor,
costs additional 200 ms.


You can choose from seven different fonts for notification icons, especially useful for differentiating multiple monitors.
Now you can run ClickMonitorDDC without notification icons, then ClickMonitorDDC-main-window can only be opened by running program again (without arguments),
and context menu can only be opened by right clicking in ClickMonitorDDC-main-window.
Argument x shuts all monitors down to power-safe-mode, this is done by windows, and is not monitor-specific.
Now if you prepend a monitornumber, monitorname, modelname or serialnumber then only this monitor is set to power-safe-mode by using MCCS-VCP-control-code.
For instance the following command-line sets a monitor with name PHL32M and a monitor with name HP27WZ to power-safe-mode. All other monitors are ignored.
PHL32M x HP27WZ x
Running this commandline again would wake up these monitors.


ClickMonitorDDC now shows brightness/contrast notification icons for each monitor, not only one icon like in earlier versions,
this is very useful with multiple monitors, because now you can use mouse wheel for each monitor-icon.
You should arrange notification icons by drag & drop. This cannot be done automatically by program.


ClickMonitorDDC Portable version is a file which can be run from any location without installation, but you can also download a Setup version,
which uses the standard Windows Install/Uninstall-procedure. Setup version was created with Inno Setup by Jordan Russell, Martijn Laan.
If you want to 'uninstall' ClickMonitorDDC, right click notification icon and then click 'Uninstall program' or use Windows Uninstall program if using Setup version.
It doesn't matter which version you use, both versions run the same ClickMonitorDDC.exe file.
If you mess around with monitor-buttons, ClickMonitorDDC may show outdated values.
Using the new Settings-Option 'Reread values from monitors' will force ClickMonitorDDC to reread values from external monitors before opening ClickMonitorDDC-window,
but this delays opening of ClickMonitorDDC-window, so normally this option is not recommended, alternatively you can right click notification icon and click 'Rescan monitors'.
But if you only work with ClickMonitorDDC there will never be outdated values.
Windows informs programs if Laptop-LCD-brightness changes, but for external monitors this is impossible.


ClickMonitorDDC is a small program without any suspicious activities, no calling home, no update-function, no writing to registry,
nevertheless sometimes very few heuristic Anti-Virus-engines think there would be suspicious code and show an unspecific warning.
This new version is created with other compiler option and at least for the moment the warnings are gone.


ClickMonitorDDC supports multiple monitors, simply by clicking in the main-window, or by using commandlines with
monitorname or modelname or serialnumber or monitornumber, these commandlines can also be used for mouse wheel + key-combinations,
but for easy use, you can simply use mouse wheel alone over noctification-icons.
ClickMonitorDDC realizes hotkeys by keyboard/mouse-hooks.
Now these hooks run in a separate thread, this way mouse/keyboard-handling should always be smooth.


Monitor name should be defined in EDID using 0xFC descriptor, external monitors normally do this, but internal LCD-Display
often do not implement this 0xFC descriptor, instead sometimes there is a 0xFE descriptor, which means unspecified text,
ClickMonitorDDC now uses this unspecified text for monitor name if there is no concrete monitor name definition.
ClickMonitorDDC shows values between 0 - 100, which is fine with external monitors, but internal LCD-display may support less levels, often only 16 levels,
for instance 1 3 4 5 6 8 10 13 17 22 29 38 49 63 80 100. Windows says every laptop must report a maximum brightness level of 100,
but there are old laptops reporting for instance 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15.
These numbers only reflect a corresponding hardware-brightness-level and different Laptop models often have different numbers.
ClickMonitorDDC now recalculates level numbers to 0 - 100 in a linear more user-friendly way.
This version comes with an unique feature for Laptop-Displays, activate this feature in settings by clicking 'same Laptop-Brightness for battery and plugged',
from now on Laptop-Display keeps same brightness ignoring power-source-changes.
Windows 10 comes with an additional Battery saver feature, which can automatically lower brightness, so for instance brightness 100 is forced down to brightness 70,
there is no way to set brightness back to 100 if Battery saver with lower brightness option is active,
therefore 'same Laptop-Brightness for battery and plugged' is temporarily deactivated if Battery saver is detected.
Battery saver also gets automatically activated if 'Power saver' plan is chosen and Laptop is on battery.


ClickMonitorDDC now uses for Laptop-Display-handling WmiMonitor classes instead of DeviceIoControl.


You are allowed to use and spread ClickMonitorDDC for free. You use this software at your own risk, I disclaim any responsibility for any harm.
There is no warranty, express or implied. The author specifically disclaim any implied warranties of merchantability and fitness for a particular purpose.
In no event will the author be liable for any damages, including but not limited to any lost profits, lost savings or any incidental or consequential damages,
whether resulting from impaired or lost data, software or computer failure or any other cause, or for any other claim by the user or for any third party claim.