通过pywinauto调整记事本的大小

时间:2018-11-24 17:11:49

标签: python window pywinauto

我需要使用python pywinauto库调整记事本的大小。

我正在使用以下代码启动记事本:-

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

2 个答案:

答案 0 :(得分:2)

尝试一下:

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中指定了某些内容而不是“无”,则可以移动它。

更多信息herehere

答案 1 :(得分:-1)

我使用以下代码对记事本进行相同操作:

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做到这一点。接下来,我将进行调查。