Как перенести окно игры на другую рабочую область(рабочий стол) с помощью кода на 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))
Помогите пожалуйста.