Функция SetForegroundWindow не функционирует без монитора

Рейтинг: 0Ответов: 0Опубликовано: 02.08.2025

Я пытаюсь сделать автовыдачу из магазина моего сервера. Перед вводом самих команд выдачи я делаю окно игры активным, но ввиду того, что данный скрипт запущен на моем втором компе (под операцией Windows), у которого нет монитора (тем более включенного), при отключении и даже сворачивании удаленного рабочего стола функция SetForegroundWindow перестаёт работать. Я попробовал сделать виртуальный монитор с помощью usbmmidd_v2, но это никак не повлияло. Что не так? Вот мой код для фокусировки на нужном окне:

import logging
import win32gui
import win32con
import win32com.client

logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)
logger = logging.getLogger(__name__)
shell = win32com.client.Dispatch("WScript.Shell")


async def activate_scum_window() -> bool:
    """Активирует окно SCUM и делает его фокусным."""

    try:
        logger.info('Поиск окна SCUM...')
        hwnd = win32gui.FindWindow(SCUM_WINDOW_CLASS, SCUM_WINDOW_TITLE)

        if not hwnd:
            logger.warning('Окно SCUM не найдено')
            return False

        logger.info('Активация окна SCUM')
        shell.SendKeys('%')
        win32gui.BringWindowToTop(hwnd)
        win32gui.SetForegroundWindow(hwnd)
        win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)
        return True

    except Exception as ex:
        logger.error(ex)
        return False

Ответы

Ответов пока нет.