Je suis assez nouveau ici. comme le titre l'indique, j'essaie de synchroniser un programme pour qu'il s'exécute et se ferme avec le coucher du soleil. j'ai juste besoin d'un peu d'aide pour trouver comment. je me demande si je peux utiliser le paramètre de veilleuse de Windows pour lancer le lot chaque fois qu'il s'allume ou s'éteint.
Réponse
Trop de publicités?Vous devrez exécuter cette tâche planifiée en tant qu'utilisateur actuellement connecté, mais vous pouvez y parvenir en surveillant le registre.
La clé que vous surveillez pour voir quel est le statut :
HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.bluelightreduction.bluelightreductionstate
La lecture du registre s'effectue via la fonction REG QUERY
commande. Cette commande peut être utilisée pour récupérer les valeurs de n'importe quelle clé dans le registre. Syntaxe :
REG QUERY [ROOT\]RegKey /v ValueName [/s]
REG QUERY [ROOT\]RegKey /ve --This returns the (default) value
Où RegKey est la clé qui doit être recherchée dans le registre.
Détails sur REG QUERY
En fonction du résultat, vous lancez ou arrêtez une tâche/un programme ou ce que vous voulez faire.
Quelques exemples de code pour vous aider à démarrer :
@echo off
setlocal
set Key=HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.bluelightreduction.bluelightreductionstate
set Type=REG_SZ
set Value=1
set Data=
for /f "tokens=2,3" %%a in ('reg query %Key% /v %Value% 2^>NUL ^| find /i "%Value%"') do (
set TestType=%%a
set Data=%%b
)
if /i not "%TestType%"=="%Type%" goto :Data_Missing
if /i "%Data%"=="0" goto Data_0
if /i "%Data%"=="1" goto Data_1
if /i "%Value%"=="1" goto Execute_P
goto Data_Undefined
:Execute_P
echo Value is "%Value%". - Executing program
Start "" "C:\Program Files\MY_FOLDER\my_program.exe"
REM notice the double quote after start IF the path contains spaces
goto end
:Data_0
echo Data is "%Data%".
goto end
:Data_1
echo Data is "%Data%".
goto end
:Data_Missing
echo Key or value not found.
goto end
:Data_Undefined
echo No action for data "%Data%" defined.
:end
Veuillez vérifier ces valeurs dans votre registre car je travaille pour l'instant sur un MAC :
set Type=REG_SZ
set Value=1
Le lot doit être exécuté comme une tâche récurrente dans le planificateur (5-10 minutes) pour vérifier le changement. Si vous maîtrisez le langage C++, vous pouvez écrire un moniteur pour vérifier l'événement, mais c'est une autre histoire.