Autoriser les timers de réveil Windows 7 / Vista

Je dois autoriser WakeTimers (l’ordinateur à sortir de son mode veille / veille prolongée) pour tous les modes de gestion de l’alimentation définis sur Activé.

options d’alimentation”>

J’ai essayé Win32_PowerSetting mais cela ne fonctionne que sur la version anglaise de Windows.

J’ai besoin d’utiliser .NET 2.0

Merci pour les réponses!

Je suppose que vous pouvez le faire en utilisant des appels d’API à powrprof.dll, ainsi que WMI, mais je n’ai pas eu le temps de comprendre cette approche.

Ce paramètre semble être simplement une clé de registre booléenne située conformément à votre plan d’alimentation actuel:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Power \ Utilisateur \ PowerSchemes \ (GUID du programme d’alimentation actuel) \ (GUID de la catégorie de veille) \ (Activer le GUID des minuteurs de réveil AC ou DC) = 0 ou 1

Plutôt que de manipuler directement le registre, une approche plus propre consisterait à activer ces parameters à l’aide de powercfg.exe.

Pour le courant alternatif:

powercfg.exe -SETACVALUEINDEX SCHEME_CURRENT SUB_SLEEP bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d 1

Pour les stacks:

powercfg.exe -SETDCVALUEINDEX SCHEME_CURRENT SUB_SLEEP bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d 1

MODIFIER:

Cela active les timers de réveil sur mon système lorsque je suis alimenté en courant alternatif à l’aide d’un mode de gestion de l’alimentation à hautes performances (à titre de preuve du concept):

 [DllImport("powrprof.dll", EntryPoint = "PowerWriteACValueIndex", CharSet = CharSet.Auto, SetLastError = true)] public static extern uint PowerWriteACValueIndex(IntPtr RootPowerKey, ref Guid SchemeGuid, ref Guid SubGroupOfPowerSettingsGuid, ref Guid PowerSettingGuid, uint AcValueIndex); public static void EnableWakeTimers() { Guid Root = new Guid("8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"); // High Performance GUID Guid Sleep = new Guid("238c9fa8-0aad-41ed-83f4-97be242c8f20"); // Sleep Subcategory GUID Guid WakeTimers = new Guid("bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d"); // Wake Timers GUID PowerWriteACValueIndex(IntPtr.Zero, ref Root, ref Sleep, ref WakeTimers, 1); } 

Cette référence est votre ami: http://msdn.microsoft.com/en-us/library/aa373163%28v=vs.85%29.aspx

Il semble que vous puissiez utiliser WMI pour modifier le paramètre.

http://www.daniweb.com/software-development/csharp/threads/272577

Microsoft a un créateur de code WMI qui vous aidera:

https://www.microsoft.com/download/fr/confirmation.aspx?displayLang=fr&id=8572

Vous voudrez rechercher sous “root \ CIMV2 \ power” pour les tâches de gestion de l’alimentation.

J’ai écrit ce script powershell pour activer ou désactiver les temporisateurs de réveil sur tous les modes de gestion de l’alimentation actuels. Sur l’avant dernière ligne “POWERCFG -setacvalueindex $ xAll $ xSubGuid $ zz 1” – le 1 signifie activer. Il suffit de changer ceci en 0 pour le désactiver.

 CLS #Capture Current Active Power Scheme $orgScheme = POWERCFG -GETACTIVESCHEME $yOrg = $orgScheme -split "\s+" $xOrg = $yOrg[3] Write-host Original Scheme = $xOrg Echo __________________________________ Echo " " $allScheme = POWERCFG /L #Echo $allScheme foreach ($line in $allScheme) { if ($line.Length -gt 40) { if ($line.subssortingng(0,5) -eq "Power") { $yAll = $line -split "\s+" $xAll = $yAll[3] write-host $xAll Powercfg -S $xAll $pScheme = POWERCFG /Q foreach ($line in $pScheme) { $yy = $line -split "\s+" $xx = $yy[5]+$yy[6]+$yy[7]+$yy[8] $zz = $yy[4] $xSubGroup = $yy[1] If($xSubGroup -eq "SubGroup") { $xSubGuid = $yy[3] } If($xx -eq "(allowwaketimers)") { write-host Power Scheme Guid = $xAll write-host Subgroup Guid = $xSubGuid write-host WakeUp Guid = $zz Write-host POWERCFG -setacvalueindex $x $xSubGuid $zz 1 Echo " " break } } POWERCFG -setacvalueindex $xAll $xSubGuid $zz 1 } } } Powercfg -S $xOrg 

Prendre plaisir.

De https://adameyob.com/2015/02/how-to-enable-wake-timers/#comment-17

 powercfg /SETACINDEXVALUE SCHEME_BALANCED SUB_SLEEP RTCWake 1 powercfg /SETACINDEXVALUE SCHEME_MIN SUB_SLEEP RTCWake 1 powercfg /SETACINDEXVALUE SCHEME_MAX SUB_SLEEP RTCWake 1 

Ou depuis http://adameyob.com/2015/02/how-to-enable-wake-timers/#comment-31

 FOR /f “tokens=1,2,3,4” %%I IN ('powercfg.exe /getactivescheme') DO ( SET GUID=%%L ) powercfg /setacvalueindex %GUID% SUB_SLEEP RTCWAKE 1