Как перенести окно игры на другую рабочую область(рабочий стол) с помощью кода на Python?

Как через код Python перенести приложение или игру на другой рабочий стол уже открытое приложение, например Warspear Onlain или открыть его на нужном рабочем столе например под номером 3?

Мой код:

import pyautogui as r
from time import sleep

sleep(5)  # (через 5 секунд начнётся перенос окон`)
rf = [[296, 75], [461, 79], [644, 68], [810, 70], [962, 76], [69, 51]] # координаты рабочих областей по x и y
k = 6
r.click(x=112, y=1419) # нажатие на вкладку представление задач
sleep(2)

while k != 0:
    for i in rf:
        x1 = i[0]
        y1 = i[1]
        r.mouseDown(x=650, y=271, button='left')  # (нажмите левую кнопку вниз), захватывает окно левой кнопкой мыши
        sleep(2)
        r.mouseUp(button='left', x=279, y=65) # отпускает окно левой кнопкой мыши
        sleep(2)
        k -= 1

Код из Интернета (не понимаю как он работает, т.к. ничего не происходит):

import win32gui
import win32process
from pyvda import AppView, VirtualDesktop

NEED_WINDOW_DESKTOP_NUMBER = 2
def get_hwnd_for_pid(pid: int):
    def callback(hwnd: int, hwnds: list):
        if win32gui.IsWindowVisible(hwnd) and win32gui.IsWindowEnabled(hwnd):
            _, found_pid = win32process.GetWindowThreadProcessId(hwnd)
            if found_pid == pid:
                hwnds.append(hwnd)
                return True
        return True
    hwnds = []
    win32gui.EnumWindows(callback, hwnds)
    return hwnds[0] if hwnds else -1
for proc in psutil.process_iter():
    if not proc.is_running() or proc.name() not in ['warspear', 'warspear']:
        continue
    hwnd = get_hwnd_for_pid(proc.pid)
    app_view = AppView(hwnd)
    # If the window is already on the desired desktop
    if hwnd == -1 or app_view.desktop.number == NEED_WINDOW_DESKTOP_NUMBER:
        continue
    print(f'Moved window (pid={proc.pid}) to window desktop #{NEED_WINDOW_DESKTOP_NUMBER}')
    app_view.move(VirtualDesktop(NEED_WINDOW_DESKTOP_NUMBER))

Помогите пожалуйста.


Ответы (0 шт):