[Ex] Modifier la luminosité de l'écran
Posté : lun. 23 sept. 2019 20:20
Bonjour,
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".
Je précise que je suis sous windows 8.
Cordialement
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