Название: Программная эмуляция чтения данных приложения Отправлено: nightpirat от Октябрь 10, 2009, 10:38 Доброго всем дня. Возможно название темы я не совсем точно сформулировал, вобщем проблема в следующем: есть стороннее приложение, задача научится читать данные с этого приложения, а также обрабатывая данные в своей программе нажимать на соответствующие кнопки в приложении. Немного поясню, допустим есть приложение А, которое я сам запускаю, но исходный код его мне не известен. Пусть А обрабатывает некий файл и после обработки выдаёт сообщение-файл такой-то обработан. Далее я жмякаю кнопку обработать следующий файл или если предыдущий файл "не обработался" выбираю другой алгоритм обработки из списка и пытаюсь обработать этим алгоритмом. Так как действия чисто механические, то хотелось бы написать программу, которая всё это будет делать за меня, вопрос каким образом в QT можно это реализовать и возможно ли это сделать вообще?
p.s. всем заранее спасибо за ответы, если чего непонятно, то спрашивайте. Название: Re: Программная эмуляция чтения данных приложения Отправлено: alexis031182 от Октябрь 10, 2009, 10:51 Каким образом программа А выдаёт сообщение об окончании обработки файла? Это графическое приложение? Если так, то вряд ли здесь что-то можно соорудить.
Название: Re: Программная эмуляция чтения данных приложения Отправлено: lighting от Октябрь 10, 2009, 11:04 Посмотри вот эту (http://www.google.ru/search?hl=ru&lr=&newwindow=1&ei=ej_QSrfILseQ-AbC3Nj6Ag&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CAYQBSgA&q=injection+ultima&spell=1) программу. Вообще-то она для автоматизации управления персонажем в Ultima online, но возможно в твоем случае тоже сгодится, она достаточно продвинутая в плане настроек.
Название: Re: Программная эмуляция чтения данных приложения Отправлено: nightpirat от Октябрь 10, 2009, 11:20 alexis031182: Программа А графическое, имеет обычное поле TextEdit и в нём выдаёт сообщение: обработка закончена.
lighting: спасибо посмотрю, но всёравно хотелось бы знать если какие-нибудь клаасы в QT обработки сообщений, которое посылает другое приложение. Ведь оно я так понимаю при работе с файлом обращается к нему, т.е. посылет некое сообщение винде.... Название: Re: Программная эмуляция чтения данных приложения Отправлено: lit-uriy от Октябрь 10, 2009, 12:23 Эту тему правильнее назвать "Автоматизация работы с приложением"
См.: AutoIt (http://www.autoitscript.com/autoit3/) - позволяет писать сценарии автоматизации работы с приложением AutoHotkey (http://www.autohotkey.com/) - аналогично, но я ни разу не работал Название: Re: Программная эмуляция чтения данных приложения Отправлено: nightpirat от Октябрь 10, 2009, 12:34 lit-uriy: спасибо, будем пробовать, обязательно отпишусь если чего-нибудь получится :)
я вот кстати порывшись в интернете нашёл, что всё это можно сделать с помощью dll injection ... http://www.xakep.ru/post/28092/default.asp (http://www.xakep.ru/post/28092/default.asp) Название: Re: Программная эмуляция чтения данных приложения Отправлено: nightpirat от Октябрь 11, 2009, 01:36 Как и обещал отписываюсь по AutoIt - всё вышеперечисленное удалось реализовать на внутреннем языке этой незамысловатой программы. Что сказать, очень большой плюс, что к ней есть документация на русском. Из минусов, поиск нужного в этой документации - то ещё занятие(кто ж знал, что конкатенация строк это "&" вместо привычного "+"-час наверное справку рыл вместе с интернетом, пока не угадал :)). Ещё по какой-то неведомой мне причине данная програ игнорирует всё , что находится в окне QT приложения(пишет , что окно Qвиджет и всё, ни одного батона или текст эдита не видит).Выкрутился эмуляцией нажатия кнопок мыши и копированием нужного в буфер обмена. Вобщем, если у кого будут вопросы, то пишите. Тема считаю хоть и не до конца, но раскрыта. Хотелось бы знать есть ли нечто подобное в самом QT?
p.s. Внутренний язык AutoIt довольно скудный, но в то же время он полностью охватывает все заявленные в программе функции. Название: Re: Программная эмуляция чтения данных приложения Отправлено: lit-uriy от Октябрь 11, 2009, 08:55 >>что окно Qвиджет и всё, ни одного батона или текст эдита не видит
Тут дело в том, что Qt сама рисует виджеты, а не пользуется ВинАПИшными. Вот чужеродная програ, заточенная под ВинАПИ их и не видит. Название: Re: Программная эмуляция чтения данных приложения Отправлено: nightpirat от Октябрь 11, 2009, 15:00 :) я так и думал...ну что-же будем по цвету пикселей определять где батон а где текст эдит, благо это очень просто
|