public enum EXECUTION_STATE :uint { ES_AWAYMODE_REQUIRED = 0x00000040, ES_CONTINUOUS = 0x80000000, ES_DISPLAY_REQUIRED = 0x00000002, ES_SYSTEM_REQUIRED = 0x00000001 // Legacy flag, should not be used. // ES_USER_PRESENT = 0x00000004 } void PreventMonitorPowerdown () { SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS); } void AllowMonitorPowerdown () { SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS); } void PreventSleep () { // Prevent Idle-to-Sleep (monitor not affected) (see note above) SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_AWAYMODE_REQUIRED); } void KeepSystemAwake () { SetThreadExecutionState(EXECUTION_STATE.ES_SYSTEM_REQUIRED); }
Public Class Form1 Private Declare Function SetThreadExecutionState Lib "kernel32" (ByVal esFlags As Int32) As Int32 Public Enum EXECUTION_STATE As Integer ES_CONTINUOUS = &H80000000 ES_DISPLAY_REQUIRED = &H2 ES_SYSTEM_REQUIRED = &H1 ES_AWAYMODE_REQUIRED = &H40 End Enum Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS) ' go End Sub Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED Or EXECUTION_STATE.ES_CONTINUOUS) ' stop End Sub End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour empêcher la mise en veille:
SetThreadExecutionState(ES_CONTINUOUS or ES_SYSTEM_REQUIRED)
Public Class Form1 <DllImport("kernel32.dll", _ SetLastError:=True, _ CallingConvention:=CallingConvention.StdCall)> _ Public Shared Function SetThreadExecutionState( _ ByVal esFlags As Integer) As Integer End Function
Private Declare Function SetThreadExecutionState Lib "kernel32" (ByVal esFlags As Int32) As Int32 Public Enum EXECUTION_STATE As Integer ES_CONTINUOUS = &H80000000 ES_DISPLAY_REQUIRED = &H2 ES_SYSTEM_REQUIRED = &H1 ES_AWAYMODE_REQUIRED = &H40 End Enum
SetThreadExecutionState (EXECUTION_STATE.ES_DISPLAY_REQUIRED Or EXECUTION_STATE.ES_CONTINUOUS) ' écran de veille STOP SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS) ' écran de veille OK
EXECUTION_STATE.ES_DISPLAY_REQUIRED Or EXECUTION_STATE.ES_CONTINUOUS
l'éditeur n'en veu pas
Imports System.Runtime.InteropServices Public Class Form1 <StructLayout(LayoutKind.Sequential)> _ Public Structure EXECUTION_STATE Public Value As Integer End Structure End Class
Public Class Introfrm Private Enum EXECUTION_STATE As Integer ES_CONTINUOUS = &H80000000 ES_DISPLAY_REQUIRED = &H2 ES_SYSTEM_REQUIRED = &H1 ES_AWAYMODE_REQUIRED = &H40 End Enum Private Sub Intro_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Commande.Top = (Me.Height - Commande.Height) \ 2 Commande.Left = (Me.Width - Commande.Width) \ 2 End Sub Private Sub Commande_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Commande.Click If Commande.Text = "Lancer le logiciel" Then Commande.Text = "Quitter le logiciel" SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED Or EXECUTION_STATE.ES_CONTINUOUS) ' écran de veille Bloqué Selectintrofrm.Show() Else SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS) ' écran de veille OK Me.Dispose() End If End Sub End Class