Активация окна Python

Если вы хотите проверить, существует ли каталог, независимо от того, является ли это реальным каталогом или символической ссылкой, используйте это:

ls $DIR
if [ $? != 0 ]; then
        echo "Directory $DIR already exists!"
        exit 1;
fi
echo "Directory $DIR does not exist..."

Объяснение: Команда «ls» дает ошибку «ls: / x: Нет такого файла или каталога ", если каталог или символическая ссылка не существует, а также устанавливает код возврата, который вы можете получить с помощью" $? ", до непустого (обычно" 1 "). Обязательно проверьте код возврата непосредственно после вызова «ls».

18
задан exupero 19 January 2010 в 01:25
поделиться

2 ответа

Для этого можно использовать модуль win32gui. Сначала вам нужно получить действующую ручку на вашем окне. Вы можете использовать win32gui.FindWindow, если знаете имя класса окна или его точное название. Если нет, вы можете перечислить окна с помощью win32gui.EnumWindows и попытаться найти нужное окно.

После того, как вы получите ручку, вы можете вызвать win32gui.SetForegroundWindows с помощью этой ручки. Оно активирует окно и будет готово к нажатию клавиш.

Смотрите пример ниже. Надеюсь, это поможет

import win32gui
import re


class WindowMgr:
    """Encapsulates some calls to the winapi for window management"""

    def __init__ (self):
        """Constructor"""
        self._handle = None

    def find_window(self, class_name, window_name=None):
        """find a window by its class_name"""
        self._handle = win32gui.FindWindow(class_name, window_name)

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

    def find_window_wildcard(self, wildcard):
        """find a window whose title matches the wildcard regex"""
        self._handle = None
        win32gui.EnumWindows(self._window_enum_callback, wildcard)

    def set_foreground(self):
        """put the window in the foreground"""
        win32gui.SetForegroundWindow(self._handle)


w = WindowMgr()
w.find_window_wildcard(".*Hello.*")
w.set_foreground()
39
ответ дан 30 November 2019 в 02:56
поделиться
import ctypes, platform

if platform.system() == 'Windows':
    Active_W = ctypes.windll.user32.GetActiveWindow()
    ctypes.windll.user32.SetWindowPos(Active_W,0,0,0,0,0,0x0002|0x0001)

Здесь мы идем. просто необходимо сохранить значение активного окна.

0
ответ дан 30 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

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