Форум сайта python.su
Приветствую всех господа программисты!!!!
Возникла такая задача, запустить скриптом два батника А.bat и В.bat(один на одном, второй на втором мониторе), которые в сою очередь стартуют соответствующие ярлыки указанных приложений . Ярлыки используются потому, что в свойствах ярлыка можно указать раскрыть приложение во весь экран(принципиально важно). Что сделано:
Python
Выделить код
import screeninfo import subprocess import argparse import sys import os def return_list_monitor(): monitors = [] for monitor in screeninfo.get_monitors(): monitors.append(monitor.name) return monitors if __name__ == "__main__": mon = return_list_monitor() app1 = r'C:\Users\username\Desktop\app1.bat' app2 = r'C:\Users\username\Desktop\app2.bat'
Отредактировано usmesn (Март 16, 2022 21:28:43)
Офлайн
Может запустить батник, подождать секунду.
Получить хэндл окна через GetForegroundWindow и переместить с помощью SetWindowPos на нужный монитор?
Координаты в переменной monitor вроде есть
Офлайн
mixer2 сообщения за 12 лет?
Зарегистрирован: 2010-09-29
Офлайн
У меня работает, как раз два моника стоит. Нехорошо конечно то что мы ждем секунду открытия окна и берем хендл верхнего. Но для какого-нибудь стартера программ наверное пойдет. Главное в процессе запуска мышкой по окнам не тыкать :)
import time import screeninfo import os # Python 3.6 import win32con from win32gui import GetForegroundWindow, MoveWindow, ShowWindow class RunApp: def __init__(self): self.monitors = [_ for _ in screeninfo.get_monitors()] def run(self, file_name, monitor_number): os.startfile(file_name) time.sleep(1) handle = GetForegroundWindow() monitor_number = monitor_number if monitor_number < len(self.monitors) else 0 MoveWindow(handle, self.monitors[monitor_number].x, self.monitors[monitor_number].y, self.monitors[monitor_number].width, self.monitors[monitor_number].height, win32con.SWP_SHOWWINDOW) ShowWindow(handle, win32con.SW_MAXIMIZE) if __name__ == "__main__": ra = RunApp() ra.run(r'C:\2Work\q1.cmd', 0) ra.run(r'C:\2Work\q1.cmd', 1)
Отредактировано mixer (Март 20, 2022 02:22:17)
Офлайн
xam1816Сам немого удивлен. Пытался зарегаться а мыло уже в базе. :)
2 сообщения за 12 лет?
Почему именно сейчас стало актуально что-то здесь ответить?
Отредактировано mixer (Март 20, 2022 02:19:04)
Офлайн
mixer, спасибо за помощь, протестирую сообщу, на первый взгляд не плохо звучит. Не ждал уже никаких коментриев.
Офлайн
mixer
спасибо тебе, все получилось.
Офлайн