Как использовать win32 gui и win32api, чтобы найти и переместить окно в windows, используя python - PullRequest
0 голосов
/ 10 марта 2020

Эта проблема действительно возникает из-за того, что я не понимаю, что я должен передать win32 gui .Enum Windows ()

http://timgolden.me.uk/pywin32-docs/win32gui__EnumWindows_meth.html

короткая версия того, что я пытаюсь выполнить sh:

  1. Обнаружение окна, которое может быть на любом из 4 различных мониторов (окно моего удаленного рабочего стола, а не все, что на самом деле работает на удаленном рабочем столе)
  2. Переместить окно на определенный монитор (я уже могу найти РУЧКУ монитора)
  3. Развернуть окно

Я хотел бы выполнить sh через win32 gui и win32api

У меня, однако, есть другой возможный метод: если кто-нибудь знает, как заставить функции снимков экрана pyauto gui наблюдать что-либо, кроме основного дисплея, тогда можно будет

Используйте pyauto gui, чтобы обнаружить заголовок окна удаленного рабочего стола (всегда один и тот же, но может отображаться на 4 мониторах, затем нажать на него и перетащить на нужный монитор и развернуть с помощью pyauto gui.

и третий метод:

* 1 025 * Используйте pygetwindow, чтобы найти и сфокусировать окно удаленного рабочего стола, затем используйте win32api, чтобы переместить его на нужный монитор. Мне нужен был бы способ использовать win32, чтобы получить РУЧКУ сфокусированного окна.

РЕДАКТИРОВАТЬ: я смог получить ТО, ЧТО Я ДУМАЛ, был правильный дескриптор, используя

pygetwindow.getAllTitles(), чтобы найти название программы удаленного рабочего стола с последующим использованием pygetwindow.getWindowsWithTitle('MyRemoteDesktopName - Remote Desktop Connection'), поскольку «MyRemoteDesktopName - Remote Desktop Connection» было указано в качестве заголовка ранее. Это дало мне ручку, которую я использовал win32gui.MoveWindow(197160, 0, 0, 1920, 1080, True), чтобы переместить окно на исходный экран. ОДНАКО панель удаленного рабочего стола не двигалась, и экран, в то время как он теперь умещался, не масштабировал способ перетаскивания панели в другое окно. Каждый из моих мониторов имеет разный размер и разрешение, и мой удаленный рабочий стол автоматически масштабируется в соответствии с тем, к чему я перетаскиваю панель. Но когда я использую wMoveWindow, он отключается от этой панели

...