Изменение размера окна текущего приложения Windows

#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, используемую в подобных ситуациях.