J'ai une tâche de synchronisation très longue qui ne peut pas être interrompue par l'économiseur d'écran ou les modes d'économie d'énergie agressifs. Je veux faire un seul appel api pour arrêter le mode d'économie d'énergie, puis le restaurer une fois la tâche terminée.Arrêt temporaire de l'économiseur d'écran et de l'hibernation dans VB.Net
Le code suivant est composé de plusieurs autres messages, mais il n'a aucun effet sur les paramètres de gestion de l'alimentation de XP. Qu'est-ce que je fais mal? TIA!
Private Declare Function SetThreadExecutionState Lib "kernel32" (ByVal esFlags As Long) As Long
Public Enum EXECUTION_STATE As Integer
ES_CONTINUOUS = &H80000000
ES_DISPLAY_REQUIRED = &H2
ES_SYSTEM_REQUIRED = &H1
ES_AWAYMODE_REQUIRED = &H40
End Enum
Public Shared Sub PowerSaveOff()
SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED Or EXECUTION_STATE.ES_CONTINUOUS)
End Sub
Public Shared Sub PowerSaveOn()
SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS)
End Sub
Voici l'écran de veille systèmes et paramètres PowerMode: alt text http://img87.imageshack.us/img87/1600/25251376.jpg alt text http://img403.imageshack.us/img403/8145/73347627.jpg
De http://msdn.microsoft.com/en-us/library/aa373208(VS.85).aspx, « Cette fonction ne se limite pas l'économiseur d'écran de l'exécution. " – AMissico
Je pense que vous devez lire la section "Remarques" de http://msdn.microsoft.com/en-us/library/aa373208(VS.85).aspx – AMissico
'ByVal esFlags As Long' =>' ByVal esFlags As EXECUTION_STATE' aiderait avec IntelliSense. – AMissico