В этой статье блога мы рассмотрим различные способы предотвращения закрытия экрана компьютера или перехода в спящий режим. Мы предоставим примеры кода для разных платформ и языков программирования, что позволит вам реализовать желаемую функциональность в ваших программных приложениях. Независимо от того, разрабатываете ли вы инструмент для презентаций, медиаплеер или любое приложение, требующее, чтобы экран оставался активным, эти методы помогут вам достичь вашей цели.
Метод 1: отключение экранной заставки и спящего режима (Windows)
Пример кода (C#):
using System;
using System.Runtime.InteropServices;
public class ScreenSaverControl
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);
[FlagsAttribute]
public enum EXECUTION_STATE : uint
{
ES_CONTINUOUS = 0x80000000,
ES_SYSTEM_REQUIRED = 0x00000001,
ES_DISPLAY_REQUIRED = 0x00000002
}
public static void PreventScreenFromClosing()
{
SetThreadExecutionState(EXECUTION_STATE.ES_DISPLAY_REQUIRED | EXECUTION_STATE.ES_CONTINUOUS);
}
public static void AllowScreenToClose()
{
SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS);
}
}
Метод 2: отключение заставки и спящего режима (macOS)
Пример кода (Swift):
import Foundation
import IOKit
func preventScreenFromClosing() {
let assertionID = IOPMAssertionID(0)
IOPMAssertionCreateWithName(kIOPMAssertionTypePreventUserIdleDisplaySleep as CFString,
IOPMAssertionLevel(kIOPMAssertionLevelOn),
assertionID,
nil,
nil)
}
func allowScreenToClose() {
let assertionID = IOPMAssertionID(0)
IOPMAssertionRelease(assertionID)
}
Метод 3: отключение экранной заставки и спящего режима (Linux)
Пример кода (Python):
import subprocess
def prevent_screen_from_closing():
subprocess.call(['xset', 's', 'off'])
subprocess.call(['xset', '-dpms'])
def allow_screen_to_close():
subprocess.call(['xset', 's', 'on'])
subprocess.call(['xset', '+dpms'])
}
Метод 4. Программное перемещение курсора мыши
Пример кода (C#):
using System;
using System.Runtime.InteropServices;
public class MouseMover
{
[DllImport("user32.dll")]
private static extern bool SetCursorPos(int X, int Y);
public static void MoveMouse(int x, int y)
{
SetCursorPos(x, y);
}
}
Метод 5. Имитация ввода с клавиатуры
Пример кода (Python с использованием библиотеки pyautogui):
import pyautogui
def simulate_keystroke(key):
pyautogui.press(key)
}
Предотвращение закрытия экрана компьютера или перехода в спящий режим имеет важное значение для многих программных приложений. В этой статье мы рассмотрели несколько методов достижения этой функциональности на разных платформах и языках программирования. Используя предоставленные примеры кода, вы можете легко интегрировать эти решения в свои приложения. Будь то отключение заставок и спящих режимов или имитация активности пользователя, эти методы гарантируют, что экран вашего компьютера останется активным, когда это необходимо.