Как я вынимаю фокус или минимизирую окно с Python?

Я должен получить фокус к указанному окну, и единственный способ, которым я вижу на голове, минимизирует все окна на передней стороне его, пока я не получаю правильный...

Как я могу сделать это?

Windows 7 и никакой определенный инструментарий....

Каждый тип окна, например, Firefox и консольной команды

5
задан ZF007 8 March 2018 в 10:25
поделиться

2 ответа

Вам нужно будет перечислить окна и сопоставить заголовок окна, чтобы получить желаемое. В приведенном ниже коде выполняется поиск окна с "firefox" в заголовке и устанавливается фокус:

import win32gui

toplist = []
winlist = []
def enum_callback(hwnd, results):
    winlist.append((hwnd, win32gui.GetWindowText(hwnd)))

win32gui.EnumWindows(enum_callback, toplist)
firefox = [(hwnd, title) for hwnd, title in winlist if 'firefox' in title.lower()]
# just grab the first window that matches
firefox = firefox[0]
# use the window handle to set focus
win32gui.SetForegroundWindow(firefox[0])

Чтобы свернуть окно, следующая строка:

import win32con
win32gui.ShowWindow(firefox[0], win32con.SW_MINIMIZE)
14
ответ дан 18 December 2019 в 13:11
поделиться

Судя по вопросу, я предполагаю, что вы хотите написать общий шаблон, который может работать с любым окном из любого приложения.

Вы можете попробовать библиотеку Python Win32 GUI Automation . Я не использовал его, но похоже, что это может быть то, что вы ищете. Если это не сработает, лучшим вариантом может быть отказ от python и использование такого инструмента, как AutoIt , который обеспечивает встроенную поддержку управления окнами.

Если ни одно из этих решений не сработает, вам, вероятно, придется напрямую вызывать windows api. Я не знаю, включает ли пакет win32api необходимую функциональность, иначе вам придется написать модуль python на c / c ++.

Если такая функциональность доступна в API .net, вы можете использовать IronPython.

0
ответ дан 18 December 2019 в 13:11
поделиться
Другие вопросы по тегам:

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