après avoir pas mal fouillé sur le web pour trouver un moyen de modifier la luminosité de l'écran de mon PC, j'ai créé ce script qui utilise "Powershell".
#cs ----------------------------------------------------------------------------
AutoIt Version : 3.3.14.5
Auteur: François
Fonction du Script : Modification de la luminosité de l'écran via powershell.
1- on récupère les infos du mode d'alimentation ('PowerShell.exe (Get-Ciminstance -Namespace root/WMI -ClassName WmiMonitorBrightness)')
2- on lit la valeur en cours de la luminosité (CurrentBrightness).
3- on affiche la GUI, le slider étant initié avec cette valeur .
4- lors du déplacement du slider, on récupère la valeur et on lance une commande powershell qui modifie la luminosité 'PowerShell.exe (Get-WmiObject -Namespace root/WMI -Class WmiMonitorBrightnessMethods).WmiSetBrightness(1,' & $new_val & ')'
C'est tout.
(Testé sous windows 8)
#ce ----------------------------------------------------------------------------
Opt("mustdeclarevars", 1)
#Region les constantes
Global Const $debug = 0
Global Const $WS_POPUP = 0x80000000
Global Const $WS_DLGFRAME = 0x00400000
Global Const $TBS_AUTOTICKS = 0x0001
Global Const $TBS_VERT = 0x0002
Global Const $TBS_BOTH = 0x0008
Global Const $SS_CENTER = 0x01
Global Const $SS_CENTERIMAGE = 0x0200
Global Const $SS_SUNKEN = 0x1000
Global Const $STDOUT_CHILD = 0x2
Global Const $sCommand_deb = 'PowerShell.exe (Get-WmiObject -Namespace root/WMI -Class WmiMonitorBrightnessMethods).WmiSetBrightness(1,'
Global Const $sCommand_fin = ')'
Global Const $scommand_ini = 'PowerShell.exe (Get-Ciminstance -Namespace root/WMI -ClassName WmiMonitorBrightness)'
#EndRegion les constantes
#Region mes variables
Global $aArray
Global $Btn_quitter
Global $ini_val
Global $iPID
Global $m_label
Global $m_slider
Global $ma_forme
Global $mon_string = ""
Global $new_val
Global $nMsg
Global $sCommand
Global $sOutput
#EndRegion mes variables
#Region création de la forme
$ma_forme = GUICreate("Brightness", 105, 485, -1, 70, BitOR($WS_DLGFRAME, $WS_POPUP))
$m_slider = GUICtrlCreateSlider(30, 10, 40, 400, BitOR($TBS_AUTOTICKS, $TBS_VERT, $TBS_BOTH))
GUICtrlSetLimit(-1, 100, 0)
GUICtrlCreateLabel("100", 10, 16, 20, 20, $SS_CENTER)
GUICtrlCreateLabel("0", 10, 390, 20, 20, $SS_CENTER)
GUICtrlCreateLabel("100", 72, 16, 20, 20, $SS_CENTER)
GUICtrlCreateLabel("0", 72, 390, 20, 20, $SS_CENTER)
$m_label = GUICtrlCreateLabel("", 15, 420, 75, 20, BitOR($SS_SUNKEN, $SS_CENTERIMAGE, $SS_CENTER))
$Btn_quitter = GUICtrlCreateButton("Quitter", 15, 450, 75, 25)
#EndRegion création de la forme
#Region programme principal
; on récupère les infos du mode d'alimentation
$iPID = Run(@ComSpec & ' /C ' & $scommand_ini, '', @SW_HIDE, $STDOUT_CHILD)
ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
If $debug = 1 Then ConsoleWrite($sOutput & @CRLF)
$aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@CRLF)), @CRLF)
If @error Then
MsgBox(0, "", "Il y a eu une erreur avec powercfg.")
Exit
EndIf
; on recherche la ligne correspondant à la luminosité
For $i = 1 To $aArray[0]
If StringInStr($aArray[$i], "CurrentBrightness") Then
If $debug = 1 Then ConsoleWrite($aArray[$i] & @CRLF)
$mon_string = $aArray[$i]
EndIf
Next
If $mon_string = "" Then
MsgBox(0, "Erreur", "La luminosité n'a pas été trouvée !!!")
Exit
EndIf
$ini_val = StringRegExpReplace($mon_string, "[\s\:A-Za-z]*", "")
If $debug = 1 Then ConsoleWrite("$ini_val=" & $ini_val & @CRLF)
; on affiche la forme
GUICtrlSetData($m_label, $ini_val & " %")
GUICtrlSetData($m_slider, 100 - $ini_val)
GUISetState(@SW_SHOW, $ma_forme)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Btn_quitter
Exit
Case $m_slider
$new_val = 100 - GUICtrlRead($m_slider)
If $debug = 1 Then ConsoleWrite("$new_val=" & $new_val & @CRLF)
GUICtrlSetData($m_label, $new_val & " %")
; on modifie la luminosité
$sCommand = $sCommand_deb & $new_val & $sCommand_fin
Run($sCommand, "", @SW_HIDE)
EndSwitch
WEnd
#EndRegion programme principal
AutoIt Version : 3.3.14.5
Auteur: François
Fonction du Script : Modification de la luminosité de l'écran via powershell.
1- on récupère les infos du mode d'alimentation ('PowerShell.exe (Get-Ciminstance -Namespace root/WMI -ClassName WmiMonitorBrightness)')
2- on lit la valeur en cours de la luminosité (CurrentBrightness).
3- on affiche la GUI, le slider étant initié avec cette valeur .
4- lors du déplacement du slider, on récupère la valeur et on lance une commande powershell qui modifie la luminosité 'PowerShell.exe (Get-WmiObject -Namespace root/WMI -Class WmiMonitorBrightnessMethods).WmiSetBrightness(1,' & $new_val & ')'
C'est tout.
(Testé sous windows 8)
#ce ----------------------------------------------------------------------------
Opt("mustdeclarevars", 1)
#Region les constantes
Global Const $debug = 0
Global Const $WS_POPUP = 0x80000000
Global Const $WS_DLGFRAME = 0x00400000
Global Const $TBS_AUTOTICKS = 0x0001
Global Const $TBS_VERT = 0x0002
Global Const $TBS_BOTH = 0x0008
Global Const $SS_CENTER = 0x01
Global Const $SS_CENTERIMAGE = 0x0200
Global Const $SS_SUNKEN = 0x1000
Global Const $STDOUT_CHILD = 0x2
Global Const $sCommand_deb = 'PowerShell.exe (Get-WmiObject -Namespace root/WMI -Class WmiMonitorBrightnessMethods).WmiSetBrightness(1,'
Global Const $sCommand_fin = ')'
Global Const $scommand_ini = 'PowerShell.exe (Get-Ciminstance -Namespace root/WMI -ClassName WmiMonitorBrightness)'
#EndRegion les constantes
#Region mes variables
Global $aArray
Global $Btn_quitter
Global $ini_val
Global $iPID
Global $m_label
Global $m_slider
Global $ma_forme
Global $mon_string = ""
Global $new_val
Global $nMsg
Global $sCommand
Global $sOutput
#EndRegion mes variables
#Region création de la forme
$ma_forme = GUICreate("Brightness", 105, 485, -1, 70, BitOR($WS_DLGFRAME, $WS_POPUP))
$m_slider = GUICtrlCreateSlider(30, 10, 40, 400, BitOR($TBS_AUTOTICKS, $TBS_VERT, $TBS_BOTH))
GUICtrlSetLimit(-1, 100, 0)
GUICtrlCreateLabel("100", 10, 16, 20, 20, $SS_CENTER)
GUICtrlCreateLabel("0", 10, 390, 20, 20, $SS_CENTER)
GUICtrlCreateLabel("100", 72, 16, 20, 20, $SS_CENTER)
GUICtrlCreateLabel("0", 72, 390, 20, 20, $SS_CENTER)
$m_label = GUICtrlCreateLabel("", 15, 420, 75, 20, BitOR($SS_SUNKEN, $SS_CENTERIMAGE, $SS_CENTER))
$Btn_quitter = GUICtrlCreateButton("Quitter", 15, 450, 75, 25)
#EndRegion création de la forme
#Region programme principal
; on récupère les infos du mode d'alimentation
$iPID = Run(@ComSpec & ' /C ' & $scommand_ini, '', @SW_HIDE, $STDOUT_CHILD)
ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
If $debug = 1 Then ConsoleWrite($sOutput & @CRLF)
$aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@CRLF)), @CRLF)
If @error Then
MsgBox(0, "", "Il y a eu une erreur avec powercfg.")
Exit
EndIf
; on recherche la ligne correspondant à la luminosité
For $i = 1 To $aArray[0]
If StringInStr($aArray[$i], "CurrentBrightness") Then
If $debug = 1 Then ConsoleWrite($aArray[$i] & @CRLF)
$mon_string = $aArray[$i]
EndIf
Next
If $mon_string = "" Then
MsgBox(0, "Erreur", "La luminosité n'a pas été trouvée !!!")
Exit
EndIf
$ini_val = StringRegExpReplace($mon_string, "[\s\:A-Za-z]*", "")
If $debug = 1 Then ConsoleWrite("$ini_val=" & $ini_val & @CRLF)
; on affiche la forme
GUICtrlSetData($m_label, $ini_val & " %")
GUICtrlSetData($m_slider, 100 - $ini_val)
GUISetState(@SW_SHOW, $ma_forme)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Btn_quitter
Exit
Case $m_slider
$new_val = 100 - GUICtrlRead($m_slider)
If $debug = 1 Then ConsoleWrite("$new_val=" & $new_val & @CRLF)
GUICtrlSetData($m_label, $new_val & " %")
; on modifie la luminosité
$sCommand = $sCommand_deb & $new_val & $sCommand_fin
Run($sCommand, "", @SW_HIDE)
EndSwitch
WEnd
#EndRegion programme principal
Je précise que je suis sous windows 8.
Cordialement