Russian Qt Forum
Ноябрь 26, 2024, 08:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Программная эмуляция чтения данных приложения  (Прочитано 4638 раз)
nightpirat
Гость
« : Октябрь 10, 2009, 10:38 »

Доброго всем дня. Возможно название темы я не совсем точно сформулировал, вобщем проблема в следующем: есть стороннее приложение, задача научится читать данные с этого приложения, а также обрабатывая данные в своей программе нажимать на соответствующие кнопки в приложении. Немного поясню, допустим есть приложение А, которое я сам запускаю, но исходный код его мне не известен. Пусть А обрабатывает некий файл и после обработки выдаёт сообщение-файл такой-то обработан. Далее я жмякаю кнопку обработать следующий файл или если предыдущий файл "не обработался" выбираю другой алгоритм обработки из списка и пытаюсь обработать этим алгоритмом. Так как действия чисто механические, то хотелось бы написать программу, которая всё это будет делать за меня, вопрос каким образом в QT можно это реализовать и возможно ли это сделать вообще?
p.s. всем заранее спасибо за ответы, если чего непонятно, то спрашивайте.
Записан
alexis031182
Гость
« Ответ #1 : Октябрь 10, 2009, 10:51 »

Каким образом программа А выдаёт сообщение об окончании обработки файла? Это графическое приложение? Если так, то вряд ли здесь что-то можно соорудить.
Записан
lighting
Гость
« Ответ #2 : Октябрь 10, 2009, 11:04 »

Посмотри вот эту программу. Вообще-то она для автоматизации управления персонажем в Ultima online, но возможно в твоем случае тоже сгодится, она достаточно продвинутая в плане настроек.
Записан
nightpirat
Гость
« Ответ #3 : Октябрь 10, 2009, 11:20 »

alexis031182: Программа А графическое, имеет обычное поле TextEdit и в нём выдаёт сообщение: обработка закончена.
lighting: спасибо посмотрю, но всёравно хотелось бы знать если какие-нибудь клаасы в QT обработки сообщений, которое посылает другое приложение. Ведь оно я так понимаю при работе с файлом обращается к нему, т.е. посылет некое сообщение винде....
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Октябрь 10, 2009, 12:23 »

Эту тему правильнее назвать "Автоматизация работы с приложением"
См.:
AutoIt - позволяет писать сценарии автоматизации работы с приложением
AutoHotkey - аналогично, но я ни разу не работал
Записан

Юра.
nightpirat
Гость
« Ответ #5 : Октябрь 10, 2009, 12:34 »

lit-uriy: спасибо, будем пробовать, обязательно отпишусь если чего-нибудь получится Улыбающийся
я вот кстати порывшись в интернете нашёл, что всё это можно сделать с помощью dll injection ... http://www.xakep.ru/post/28092/default.asp
Записан
nightpirat
Гость
« Ответ #6 : Октябрь 11, 2009, 01:36 »

Как и обещал отписываюсь по AutoIt - всё вышеперечисленное удалось реализовать на внутреннем языке этой незамысловатой программы. Что сказать, очень большой плюс, что к ней есть документация на русском. Из минусов, поиск нужного в этой документации - то ещё занятие(кто ж знал, что конкатенация строк это "&" вместо привычного "+"-час наверное справку рыл вместе с интернетом, пока не угадал Улыбающийся). Ещё по какой-то неведомой мне причине данная програ игнорирует всё , что находится в окне QT приложения(пишет , что окно Qвиджет и всё, ни одного батона или текст эдита не видит).Выкрутился эмуляцией нажатия кнопок мыши и копированием нужного в буфер обмена. Вобщем, если у кого будут вопросы, то пишите. Тема считаю хоть и не до конца, но раскрыта. Хотелось бы знать есть ли нечто подобное в самом QT?
p.s. Внутренний язык AutoIt  довольно скудный, но в то же время он полностью охватывает все заявленные в программе функции.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Октябрь 11, 2009, 08:55 »

>>что окно Qвиджет и всё, ни одного батона или текст эдита не видит
Тут дело в том, что Qt сама рисует виджеты, а не пользуется ВинАПИшными. Вот чужеродная програ, заточенная под ВинАПИ их и не видит.
Записан

Юра.
nightpirat
Гость
« Ответ #8 : Октябрь 11, 2009, 15:00 »

Улыбающийся я так и думал...ну что-же будем по цвету пикселей определять где батон а где текст эдит, благо это очень просто
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.12 секунд. Запросов: 22.