Изменение размера Блокнота через pywinauto - PullRequest
0 голосов
/ 24 ноября 2018

Мне нужно изменить размер блокнота с помощью библиотеки python pywinauto.

Я использую приведенный ниже код для запуска блокнота: -

from pywinauto import application
app = application.Application()
app.start("Notepad.exe")

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Я использую следующий код, чтобы сделать то же самое с Блокнотом:

from pywinauto import application
app = application.Application()
app.start("Notepad.exe")
app.Notepad.move_window(0,0,400,400)

Это довольно просто и работает для меня.Тем не менее, я хотел бы сделать это с Excel (и Outlook, Edge и Google Chrome).Кто-нибудь знает, как это сделать с этими другими приложениями тоже?Я часами охотился и не могу найти, как, но нашел много ссылок на pywinauto на этом веб-сайте.Приложения будут открываться нормально, но я не могу переместить / изменить их размер, что я действительно хотел бы сделать.

ОБНОВЛЕНИЕ: я составил следующий код, который открывает книгу Excel, перемещает и изменяет ее размер:

import win32gui, win32con, win32api
from win32com.client import DispatchEx # Note - "Dispatch" opens in existing instance of Excel, "DispatchEx" opens in new instance

workbook = 'C:\\Users\\*user*\\Documents\\book1.xlsm'

xl = DispatchEx('Excel.Application')
xl.Visible = 1
try:
    xl.Workbooks.Open(workbook)
except:
    print(workbook + ' not found')
try:
    hwnd = win32gui.FindWindow(None, workbook.split("\\")[-1] + ' - Excel')
    # Move windows to specified location and size
    win32gui.MoveWindow(hwnd, 0, 0, 1920, 1042, True)
    # Maximize window
    #win32gui.ShowWindow(hwnd, win32con.SW_MAXIMIZE)
except:
    print("Error moving and resizing " + workbook)

Я не специалист по программированию на Python, поэтому любые улучшения приветствуются.Я также хотел бы иметь возможность сделать это с Edge, Chrome и Outlook.Я буду смотреть на это дальше.

0 голосов
/ 24 ноября 2018

Попробуйте:

from pywinauto import application
app = application.Application()
app.start("Notepad.exe")
dlg_spec = app.window()
dlg_spec.move_window(x=None, y=None, width=200, height=100, repaint=True)

Кроме того, вы можете переместить его, если вместо x в Y и Y указать что-то другое.

Дополнительная информация здесь и здесь

...