Управление другими программами python

Взаимодействие приложения на пайтоне с другой программой

получаю список имён каждого открытого окна, если имеется интересующее меня
как узнать, о программе (?-в коде) и конечная цель в нужное окно ввода ввести данные
нажать нужную кнопку и забрать результат из окна вывода, возможно, подскажите как?
ОС-Вин7+, спс

Взаимодействие с другой программой
Всем привет, хочу написать бота для игры 2048, представляю себе это так, запускаю игру и потом.

Взаимодействие с другой программой
Всем добрый вечер! Подскажите пожалуйста как реализуется взаимодействие с другой программой.

Взаимодействие программы на C# с другой программой
Здравствуйте! Объясняю ситуацию: есть 2 программки одна написана на С# а другая на Delphi. Можно.

Взаимодействие веб-приложения с десктопной программой
Здравствуйте. Нужно организовать управление десктоп-приложением через веб-приложение. Можно ли.

Взаимодействие с другой программой. При наличии большого объема обрабатываемых данных. FineReader API, OLE.
Здравствуйте, уважаемые коллеги! Начну с того, что в делфи я не программировал давненько и не.

Эксперт Python

ЦитатаСообщение от Рыжий Лис Посмотреть сообщение

Добавлено через 4 минуты
и вариант, если id всего известны-можно? как?

Эксперт Python

Лучший ответ

Сообщение было отмечено Ципихович Эндрю как решение

Решение

Эксперт Python

Ципихович Эндрю, если есть горячие клавиши, можно попробовать передавать комбинации или передавать определенное (заранее известное) количество переключающих клавиш (TAB, LEFT и т.д.), ну и либо вводить что то, либо нажать.

Посмотрите, может будет интересно: https://pypi.org/project/PyAutoIt/
Там же внизу страницы пример работы с блокнотом.

Эксперт Python

Эксперт Python

Ципихович Эндрю, ну тогда доводить до кондиции напильником.
https://ru.wikipedia.org/wiki/. 0%B8%D0%B5

спс за ответ
подскажите
1 возможно ли это?
2 что нужно предпринять?, чтобы это сделать:
программа о которой шла речь, стоит на ПК с ОС Виндувс7+
она открыта но свёрнута, у неё есть вкладки
задача — зайти в браузер любой, начнём с Хрома, Файрфокса, в адресной строке вбить простой адрес, например 2 и заходим на 2-ю вкладку этой программы, спс

Читайте также:  Java decode jwt token

Эксперт Python

Ципихович Эндрю, то есть, что-то типа такого?
Программа на сишарпе — это гуй (строго, в этом её смысл) и она должна стать гуёвым сервером, т. е. передавать клиенту своё изображение?

ЦитатаСообщение от Ципихович Эндрю Посмотреть сообщение

Эксперт Python

Ципихович Эндрю, это отдельная задача.

Но вы не ответили за мой предыдущий уточняющий вопрос. Эндрю, это ведь не мне надо.

Хорошо, предварительный вердикт — неправильно поставленная задача. Делать какие-то действия через гуй, писать сложные сервера для взаимодействия с гуём — это путь окольный, тяжкий и бесперспективный.

Вам надо подумать о действиях, которые делает сервер (видимо, по нажатию кнопок) и ответах (то, что он отражает в гуе). Именно как о действиях и ответах, в отрыве от гуя. И ИХ вывести наружу, чтобы клиент на питоне к ним обращался.
Каким образом? Возможны варианты. Если клиент будет один, без асинхронной работы — в первую очередь я бы посмотрел в сторону консольного приложения. Если же ситуация сложнее — делать, как простенький веб-сервис.
Тут тоже варианты. Либо вебсервер вмонтировать в программу, либо делать как цивильный веб-сервис. Но тогда надо думать, кто его будет поднимать и заботиться о безопасности.

Добавлено через 3 минуты
Да, для винды ещё есть вариант в виде COM или .NET, тоже хорошо.
Сишарп умеет делать объекты в виде COM, это легко. Питон умеет к ним обращаться с помощью pywin32. Насчёт .NET — я точно не знаю, но наверняка должен быть аналог. Это — если не хочется через http.

Источник

Управление Windows приложениями с помощью PowerShell через Telegram бота на Python

Работаю инженером в компании, у которой есть несколько удаленных филиалов и в каждом из них работают сервера видеонаблюдения. Охрана круглосуточно ведет мониторинг происходящего, а приложение видеонаблюдения на этих серверах имеет привычку зависать. Звонки от охраны могут поступать в любое время суток, что очень неудобно, когда ты спишь или нет доступа к ПК, чтобы подключиться удаленно и перезапустить программу

Читайте также:  Python запуск скрипта на другом компьютере

Я начал задумываться о решении данной проблемы путем создания Telegram бота на Python, с помощью которого можно комфортно перезапускать ПО или делегировать это функцию не компетентным людям, например охране

При всем многообразии решений с помощью Telegram ботов, информации на эту тему в интернете мало, поэтому решил поделиться ей здесь, возможно кому то пригодиться

Так же по этому примеру, через запуск скриптов, возможно управлять инфраструктурой серверов предприятия и пр. все зависит от вашей фантазии

Настройка на серверах

Для начала нужно выполнить настройки на серверах (управляемых ПК) с помощью PowerShell, запустить оснастку необходимо от имени администратора

Включить и настроить WinRM на удаленном компьютере:

Enable-PSremoting -skipnetworkprofilecheck –force
Set-executionpolicy remotesigned

На клиентском (управляющем) ПК тоже необходимо выполнить настройки

  • Добавить IP адреса компьютеров, к которым мы будем подключаться в TrustedHosts или же просто разрешить все добавив *
Set-item wsman:\localhost\client\trustedhosts *

Теперь с помощью PowerShell ISE создадим скрипт для запуска/перезапуска процесса программы, которую необходимо перезапустить, тут же можно будет проверить его выполнение

$proc = Get-Process | Where-Object $proc.Kill() Start-Process "C:\apps\Путь к программе "

Далее на серверах создадим простую задачу без триггеров и расписания в планировщике заданий, где укажем только действие на запуск нашего скрипта

Перейдем к настройке клиента

В качестве клиентского компьютера использовалась виртуальная машина с Windows 10

Сервера видеонаблюдения не входят в домен, поэтому придется обойти авторизацию, для этого нам необходимо создать одинаковых пользователей с правами администратора и одинаковым паролем на серверах и клиентском ПК и все действия ниже нужно выполнять под этим пользователем

На клиентском ПК создаем скрипты запуска заданий, которые мы создали на серверах

Invoke-Command -ComputerName 'IP адрес' -ScriptBlock

Чтобы в дальнейшем наш бот смог выполнять эти скрипты, назначаем программу PowerShell для их выполнения по умолчанию, изначально назначен блокнот

Читайте также:  Php require once ошибка

Создаем Telegram бота

Находим контакт с именем @BotFather, пишем /newbot, далее указываем название бота

Отсюда нам понадобится token нашего бота

Далее при помощи команды /mybots выбираем и редактируем нашего бота, здесь мы можем настроить меню для запуска наших команд

Устанавливаем Python

Забегая вперед, скажу, что библиотека Python, которую мы будем подключать, почему то работала с ошибками в некоторых версиях Python, я установил PyCharm, Python 3.9.13 вместе с IDE, с ним все работало корректно. Ссылка https://www.jetbrains.com/pycharm/

Далее открываем Cmd или PowerShell от имени администратора и устанавливаем библиотеку для управления нашим ботом

Теперь напишем код нашего Telegram бота

import telepot, time, subprocess def remote(msg): content_type, chat_type, chat_id = telepot.glance(msg) if (content_type == 'text'): command = msg['text'] print ('Got command: %s' % command) if '/address1' in command: #Комманда в Telegram p = subprocess.Popen(expert1, shell=True) #Указываем переменную p = subprocess.Popen(expert2, shell=True) bot.sendMessage(chat_id, "DONE") #Вывод сообщения в чат if '/address2' in command: p = subprocess.Popen(expert3, shell=True) p = subprocess.Popen(expert4, shell=True) p = subprocess.Popen(expert5, shell=True) bot.sendMessage(chat_id, "DONE") if '/address3' in command: p = subprocess.Popen(expert6, shell=True) p = subprocess.Popen(expert7, shell=True) bot.sendMessage(chat_id, "DONE") bot = telepot.Bot('Ваш token Telegam бота') #Указываем token Telegam бота expert1 = 'C:\Telegram\expert1.ps1' #Указваем путь к скрипту expert2 = 'C:\Telegram\expert2.ps1' expert3 = 'C:\Telegram\expert3.ps1' expert4 = 'C:\Telegram\expert4.ps1' expert5 = 'C:\Telegram\expert5.ps1' expert6 = 'C:\Telegram\expert6.ps1' expert7 = 'C:\Telegram\expert7.ps1' bot.message_loop(remote) while 1: time.sleep(20)

Источник

Оцените статью