1 / 1 / 0
Регистрация: 03.06.2011
Сообщений: 33
|
|
1 | |
Как определить, что стороннее приложение уже закончило обработку данных и находится в запущенном состоянии13.07.2012, 12:28. Показов 823. Ответов 5
Метки нет (Все метки)
Посредством API из основной программы запускается стороннее приложение, которое выполняет какие то задачи (открывает, конвертирует и сохраняет файлы на диске).
Можно ли как-то определить, что обработка данных в этом приложении закончилась и оно просто висит без дела? Нужно, понятно, для того, чтобы закрыть его. Помогите советом пожалуйста!
0
|
13.07.2012, 12:28 | |
Ответы с готовыми решениями:
5
Экранная клавиатура - как что-то вписать в стороннее приложение Как определить, в фокусе или нет стороннее приложение Как определить, в фокусе или нет стороннее приложение Отправка данных в стороннее приложение |
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
13.07.2012, 12:30 | 2 |
Какая ОС, какое приложение (оконное/консольное), как запускается, что значит висит без дела..
0
|
1 / 1 / 0
Регистрация: 03.06.2011
Сообщений: 33
|
||||||
13.07.2012, 12:41 [ТС] | 3 | |||||
Операционка- Windows (XP или 7). Основная программа- оконное приложение. Запускаемая из нее программа- тоже оконное пр., к коду которого доступа понятно нет. Висит без дела - это значит, что оно закончило обработку каких-то данных. Работой стороннего приложения я управляю симуляцией клавиатуры (в стороннем приложении есть "горячие" клавиши) путем
0
|
20 / 20 / 2
Регистрация: 01.05.2012
Сообщений: 61
|
|
16.07.2012, 04:41 | 4 |
1. Сторонняя программа вероятно как-то сообщает, что она закончила обработку файлов, например, создает MessageBox с сообщение "All done". Можно, например, каждую секунду просматривать дерево дочерних окон этого приложения с целью найти этот MessageBox, который говорит о окончании работы с файлами.
2. Можно проверять длину файла-результата. Например, ваша сторонняя прога берет фаил 1.txt и делает 2.txt. Проверяем каждые 5 секунд размер 2.txt. Если в течении 5 секунд его размер не увеличился, полагаем, что работа проги закончена. Более приятным было бы, если прога ставит лок на 2.txt, тогда способность открыть 2.txt из главного треда есть сигнал завершения сторонней проги. 3. Перехватываем WinAPI CloseHandle с помощью инджектируемой Длл-и.
1
|
1 / 1 / 0
Регистрация: 03.06.2011
Сообщений: 33
|
|
16.07.2012, 10:31 [ТС] | 5 |
С 3-им пунктом не совсем понятно - нельзя ли как-то поподробнее?
Стороннюю прогу я включил в ресурсы, откуда она распаковывается в exe. - ик. Как мне перехватить этот хэндл?
0
|
20 / 20 / 2
Регистрация: 01.05.2012
Сообщений: 61
|
|
16.07.2012, 12:09 | 6 |
Ну, по поводу перехвата функций ВинАПИ исписаны мегабайты мануалов. Можно тут взглянуть:
http://korzh.net/2009-12-perex... nkcij.html
0
|
16.07.2012, 12:09 | |
16.07.2012, 12:09 | |
Помогаю со студенческими работами здесь
6
Ввод данных в стороннее приложение не с клавиатуры Прием и отправка данных в стороннее консольное приложение База данных находится в неизвестном состоянии, её не удается открыть в приложении Как определить, запущено ли уже приложение? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |