sacar quitar protector pantalla inicio desactivar contraseƱa como cambiar bloqueo bloquear c# screensaver

c# - quitar - como sacar bloqueo de pantalla windows 8



Necesidad de desactivar el bloqueo de pantalla/protector de pantalla en Windows C#/. Net (5)

theoldnewthing tiene su respuesta: use SetThreadExecutionState(ES_DISPLAY_REQUIRED) .

Esto es utilizado por los reproductores de video y PowerPoint.

Para una aplicación en particular, necesito que el protector de pantalla esté desactivado mientras se está ejecutando. El operador PODRÍA apagarlo manualmente y luego volver a encenderlo más tarde, pero lo más fácil sería mantener a raya el protector de pantalla mientras se ejecuta la aplicación.

¿Cómo hago esto? Encontré un código para desconectar el protector de pantalla con SPI_SETSCREENSAVEACTIVE, pero no creo que eso sea lo que quiero.


SystemParametersInfo con SPI_SETSCREENSAVEACTIVE es la forma normal de hacerlo. Sin embargo, no desactiva el bloqueo de pantalla.


intente hacer que su formulario sea el valor más alto, es verdad, me funciona. El protector de pantalla nunca llegó incluso después del tiempo de inactividad ...


SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED);

Esto no es útil en XP.

De hecho, esta función no funciona de forma cruzada entre las diferentes versiones de Windows (aunque funciona bastante bien en Windows Vista o superior) ... En Windows XP / 2003, esta función se ejecutará con ES_USER_PRESENT | ES_CONTINUOUS (ambos deben llamarse) ... Esto restablecerá periódicamente el sistema y mostrará temporizadores inactivos ... En otras versiones de Windows, se recomienda que use ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED | ES_CONTINUOUS | ES_AWAYMODE_REQUIRED ...


[FlagsAttribute] public enum EXECUTION_STATE : uint { ES_SYSTEM_REQUIRED = 0x00000001, ES_DISPLAY_REQUIRED = 0x00000002, // Legacy flag, should not be used. // ES_USER_PRESENT = 0x00000004, ES_AWAYMODE_REQUIRED = 0x00000040, ES_CONTINUOUS = 0x80000000, } public static class SleepUtil { [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags); } public void PreventSleep() { if (SleepUtil.SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_AWAYMODE_REQUIRED) == 0) //Away mode for Windows >= Vista SleepUtil.SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_SYSTEM_REQUIRED); //Windows < Vista, forget away mode }

Crédito: P / Invoke , deadpoint