Задать вопрос
@bely_volk95
Начинающий программист Python

Как сделать закрытие окна по названию Python на Linux и на Windows?

Необходимо сделать закрытие окна по его названию на Linux и на Windows. Не найдя никаких методов и модулей для закрытия окна напрямую пришлось делать костыль с фокусировкой на нужном окне и последующим нажатием "alt" "f4".
Ниже код, который у меня получился
import win32gui
import re

handle = None

def window_enum_callback(hwnd, wildcard):
    global handle
    """Pass to win32gui.EnumWindows() to check all the opened windows"""
    if re.match(wildcard, str(win32gui.GetWindowText(hwnd))) is not None:
        handle = hwnd

win32gui.EnumWindows(window_enum_callback, name.split(" ")[0])
pg.press("alt")
win32gui.SetForegroundWindow(handle)
pg.hotkey("alt", "f4")
handle = None

Нужно заменить библиотеку win32gui или найти способ установки ее на Linux и стабильной работы нужных функций.
Как это можно сделать? Если есть предложения как реализовать идею другим подходом буду очень благодарен
  • Вопрос задан
  • 281 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 2
Vindicar
@Vindicar
RTFM!
Я тебе больше скажу, под линуксом есть несколько оконных менеджеров - Gnome, KDE, Xfce из числа популярных.
Хотя многие менеджеры базируются на X-Server, так что любое решение, использующее базовые возможности X-Server, будет более-менее универсальным. Например, можешь попробовать команду wmctrl.
Если я верно понял справку по ссылке выше, то
wmctrl -c 'Имя моего окна' должно закрыть первое окно, в заголовке которого встречается подстрока "имя моего окна" без учёта регистра.
wmctrl -F -c 'Имя моего окна' должно закрыть первое окно, заголовок которого в точности равен "Имя моего окна".
Это сработает для Xfce и KDE X11, но не для KDE Wayland, например. Насчёт Gnome не уверен.

А вообще стоит задаться таким вопросом: тебе нужно именно закрыть отдельное окно, или завершить процесс, который это окно породил? Потому что если второе, то под линуксом это делается намного проще и универсальнее.
Ответ написан
Комментировать
@pfg21
ex-турист
Мне кажется автор не удачно гуглил "python закрыть программу" с соответствующими модификаторами "Виндоус" и "Линукс"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы