Взаимодействие приложения на пайтоне с другой программой
получаю список имён каждого открытого окна, если имеется интересующее меня
как узнать, о программе (?-в коде) и конечная цель в нужное окно ввода ввести данные
нажать нужную кнопку и забрать результат из окна вывода, возможно, подскажите как?
ОС-Вин7+, спс
Взаимодействие с другой программой
Всем привет, хочу написать бота для игры 2048, представляю себе это так, запускаю игру и потом.
Взаимодействие с другой программой
Всем добрый вечер! Подскажите пожалуйста как реализуется взаимодействие с другой программой.
Взаимодействие программы на C# с другой программой
Здравствуйте! Объясняю ситуацию: есть 2 программки одна написана на С# а другая на Delphi. Можно.
Взаимодействие веб-приложения с десктопной программой
Здравствуйте. Нужно организовать управление десктоп-приложением через веб-приложение. Можно ли.
Взаимодействие с другой программой. При наличии большого объема обрабатываемых данных. FineReader API, OLE.
Здравствуйте, уважаемые коллеги! Начну с того, что в делфи я не программировал давненько и не.
Сообщение от Рыжий Лис
Добавлено через 4 минуты
и вариант, если id всего известны-можно? как?
Сообщение было отмечено Ципихович Эндрю как решение
Решение
Ципихович Эндрю, если есть горячие клавиши, можно попробовать передавать комбинации или передавать определенное (заранее известное) количество переключающих клавиш (TAB, LEFT и т.д.), ну и либо вводить что то, либо нажать.
Посмотрите, может будет интересно: https://pypi.org/project/PyAutoIt/
Там же внизу страницы пример работы с блокнотом.
Ципихович Эндрю, ну тогда доводить до кондиции напильником.
https://ru.wikipedia.org/wiki/. 0%B8%D0%B5
спс за ответ
подскажите
1 возможно ли это?
2 что нужно предпринять?, чтобы это сделать:
программа о которой шла речь, стоит на ПК с ОС Виндувс7+
она открыта но свёрнута, у неё есть вкладки
задача — зайти в браузер любой, начнём с Хрома, Файрфокса, в адресной строке вбить простой адрес, например 2 и заходим на 2-ю вкладку этой программы, спс
Ципихович Эндрю, то есть, что-то типа такого?
Программа на сишарпе — это гуй (строго, в этом её смысл) и она должна стать гуёвым сервером, т. е. передавать клиенту своё изображение?
Сообщение от Ципихович Эндрю
Ципихович Эндрю, это отдельная задача.
Но вы не ответили за мой предыдущий уточняющий вопрос. Эндрю, это ведь не мне надо.
Хорошо, предварительный вердикт — неправильно поставленная задача. Делать какие-то действия через гуй, писать сложные сервера для взаимодействия с гуём — это путь окольный, тяжкий и бесперспективный.
Вам надо подумать о действиях, которые делает сервер (видимо, по нажатию кнопок) и ответах (то, что он отражает в гуе). Именно как о действиях и ответах, в отрыве от гуя. И ИХ вывести наружу, чтобы клиент на питоне к ним обращался.
Каким образом? Возможны варианты. Если клиент будет один, без асинхронной работы — в первую очередь я бы посмотрел в сторону консольного приложения. Если же ситуация сложнее — делать, как простенький веб-сервис.
Тут тоже варианты. Либо вебсервер вмонтировать в программу, либо делать как цивильный веб-сервис. Но тогда надо думать, кто его будет поднимать и заботиться о безопасности.
Добавлено через 3 минуты
Да, для винды ещё есть вариант в виде COM или .NET, тоже хорошо.
Сишарп умеет делать объекты в виде COM, это легко. Питон умеет к ним обращаться с помощью pywin32. Насчёт .NET — я точно не знаю, но наверняка должен быть аналог. Это — если не хочется через http.
Управление Windows приложениями с помощью PowerShell через Telegram бота на 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 для их выполнения по умолчанию, изначально назначен блокнот
Создаем 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)