#python
#python
Вопрос:
Привет, просто хочу настроить размер запущенного окна, однако запущенное окно имеет «статический» размер, его нельзя изменить с помощью мыши. есть ли способ обойти это с помощью python?
пробовал использовать это, когда искал тему здесь import win32gui hwnd = win32gui.FindWindow(None, 'Window Title') x0, y0, x1, y1 = win32gui.GetWindowRect(hwnd) w = x1 - x0 h = y1 - y0 win32gui.MoveWindow(hwnd, x0, y0, w 100, h 100, True)
* однако я получаю эту конкретную ошибку ‘pywintypes.error: (5, ‘MoveWindow’, ‘Доступ запрещен.’)’
Ответ №1:
Чтобы получить доступ к окну из Python, выполните следующие действия.
- Используется
win32gui.EnumWindows
для поиска окон с определенным заголовком - Вызов
win32.Dispatch
для установки фокуса на рабочем столе - Используется
SendKeys('%')
для запуска поиска в окне - Используйте
win32gui
функцию для изменения свойства окна
Попробуйте этот код для изменения размера окна:
import win32com.client as win32
import win32gui
title = "Untitled - Notepad2" # find first window with this title
def windowEnumerationHandler(hwnd, top_windows):
top_windows.append((hwnd, win32gui.GetWindowText(hwnd)))
top_windows = [] # all open windows
win32gui.EnumWindows(windowEnumerationHandler, top_windows)
winlst = [] # windows to cycle through
for i in top_windows: # all open windows
if i[1] == title:
winlst.append(i)
hwnd = winlst[0][0] # first window with title, get hwnd id
shell = win32.Dispatch("WScript.Shell") # set focus on desktop
shell.SendKeys('%') # Alt key, send key
rect = win32gui.GetWindowRect(hwnd)
x0, y0, x1, y1 = win32gui.GetWindowRect(hwnd)
w = x1 - x0
h = y1 - y0
win32gui.MoveWindow(hwnd, x0, y0, w 100, h 100, True)
Комментарии:
1. Спасибо, что он работает отлично! хотя, что делает shell.sendkeys(‘%’), я имею в виду, почему мы должны отправлять клавишу alt
2. Непонятно, зачем требуется клавиша alt. Я думаю, что это специальная клавиша в Windows (например, alt tab). Может работать и другой ключ, но я всегда вижу клавишу alt, используемую в подобных ситуациях.