ScreensaverStopper, deje de activar el protector de pantalla enviando F24 a menudo

ScreensaverStopper, deje de activar el protector de pantalla enviando F24 a menudo

Tapón de protector de pantalla

ScreensaverStopper envía la pulsación de tecla F24 cada 40 segundos. De esta forma, Windows no debería activar el protector de pantalla. Útil si no tiene derechos para deshabilitar el protector de pantalla, pero puede ejecutar ejecutables.

Lo he escrito para solucionar un enfado personal. En el trabajo tengo una máquina virtual con Windows 10 (para Visual Studio, acceso a archivos compartidos en red y Microsoft Office Suite). No puedo deshabilitar el protector de pantalla debido a la política de GPO. Sin embargo, puedo compilar y ejecutar software.

No hay ventana, ni salida, ni configuraciones, solo una pulsación de tecla cada 40 segundos. Si necesita detener la aplicación, use el administrador de tareas.

Pruebe la entrada del teclado aquí:

Uso de recursos:

Descargar

Está escrito en C++, compilado con GCC 8.1 a través de MinGW. El tamaño del archivo es de alrededor de 14 KB, el uso de la memoria después de un día de funcionamiento es de alrededor de 600 KB. La licencia es GNU GPLv3.

  • Descárgalo aquí o en GitHub.

Código fuente

main.cpp :

/**
 * Stop system from going to screensaver by sending F24 keystroke every 40 seconds.
 * License: GNU GPLv3
 * Source: https://raymii.org
 * Author: Remy van Elst, 2019
 */
#define WINVER 0x0500
#include <windows.h>
int main()
{
     // 40 seconds
    DWORD sleeptime = 40000;
    INPUT ip;
    ip.type = INPUT_KEYBOARD;
    ip.ki.wScan = 0; // hardware scan code for key
    ip.ki.time = 0;
    ip.ki.dwExtraInfo = 0;
    // list of keycodes:
    // http://web.archive.org/web/20191221104344/https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
    ip.ki.wVk = 0x87; // virtual-key code for the "F24" key
    while (true)
    {
        ip.ki.dwFlags = 0; // 0 for key press
        SendInput(1, &ip, sizeof(INPUT));
        ip.ki.dwFlags = KEYEVENTF_KEYUP; // KEYEVENTF_KEYUP for key release
        SendInput(1, &ip, sizeof(INPUT));
        Sleep(sleeptime);
    }
    return 0;
}

CMakeLists.txt :

cmake_minimum_required(VERSION 3.15)
project(ScreenSaverStopper)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -s")
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
message(CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS})
add_executable(ScreenSaverStopper WIN32 main.cpp)