win32gui выбирает два окна с одинаковым именем - PullRequest
0 голосов
/ 01 февраля 2019

Я работаю над созданием кода Python с помощью pywinauto, чтобы автоматизировать процесс установки двух клиентов Minecraft на разделенный экран.

После подготовки всего этого последним шагом является создание одного экземпляра Minecraft размером 0x0x1920x540 идругой должен быть в 0x540x1920x540.Но поскольку оба экземпляра имеют одно и то же имя, я могу выбрать и переместить только один, есть ли способ как-то выделить одновременно и расположить сверху и снизу?

from pywinauto.application import Application
from pywinauto import taskbar
from pywinauto import keyboard
import pywinauto
import win32gui
import time

app = Application(backend="uia").start('D:\Games\Minecraft\MinecraftLauncher.exe')
dlg_spec = app.window(title='Minecraft Launcher')
time.sleep(3)
keyboard.SendKeys("{TAB}")
keyboard.SendKeys("{ENTER}")
time.sleep(3)
keyboard.SendKeys("{TAB}")
time.sleep(0.3)
keyboard.SendKeys("{TAB}")
time.sleep(0.3)
keyboard.SendKeys("{TAB}")
time.sleep(0.3)
keyboard.SendKeys("{ENTER}")
keyboard.SendKeys("{TAB}")
keyboard.SendKeys("{TAB}")
keyboard.SendKeys("{TAB}")
keyboard.SendKeys("{ENTER}")
time.sleep(10)


app = Application(backend="uia").start('border_stripper.exe')
dlg_spec = app.window(title='Border Stripper')
app.Dialog['Minecraft 1.11.2ListItem2'].select()
app.Dialog.Button1.click()
app.Dialog['Minecraft 1.11.2ListItem0'].select()
app.Dialog.Button1.click()

hwnd = win32gui.FindWindow(None, "Minecraft 1.11.2")
win32gui.MoveWindow(hwnd, 0, 0, 1920, 540, True)
#hwnd2 doesn't do anything because both windows appear as "Minecraft 1.11.2"
hwnd2 = win32gui.FindWindow(None, "Minecraft 1.11.2(2)")
win32gui.MoveWindow(hwnd2, 0, 540, 1920, 540, True)

1 Ответ

0 голосов
/ 11 марта 2019

Установка размера окна Minecraft по умолчанию равным 1920x520 приведет к тому, что оба окна появятся в верхней половине экрана и, следовательно, потребуется только переместить одно в нижнюю половину.

...