Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rasweb
0 / 0 / 0
Регистрация: 19.05.2008
Сообщений: 28
#1

Как поймать DOS приложение запущенное Win приложением - C++

25.03.2009, 08:19. Просмотров 745. Ответов 2
Метки нет (Все метки)

Встала проблема узким боком ))
Итак есть Win приложение которое (для своей работы) запускает DOS.
DOS в свою очередь возвращает данные в файле, которыми пользуется Win.

Проблема.
В ряде случаев (так и должно быть) DOS приложение НЕ создаёт файл и не закрывает своё окно (но при этом завершает работу).
Таким образом, поймать его из Win нельзя.

Вопрос:
- как можно (и можно ли) поймать завершение работы DOS не прибегая к FindWindow (т.к. в ряде случаев просто не помогает)?
DOS прилож. запускается CreateProcces....

P/S Большой привет Adil-у. До сих пор вспоминаю добрым словом его функции перевода текста Win->DOS->Win.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2009, 08:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как поймать DOS приложение запущенное Win приложением (C++):

DOS -> WIN - C++
Помогите написать программу для перекодировки текста к примеру из DOS -> WIN!

Не переводит из Win в Dos и обратно - C++
Проблема с переводом, как уже только не пытался но не хочет переводить. Еще одна проблема с условием, точно не знаю что там необходимо...

Конвертация кодировки DOS в Win - C++
Есть файл с данными но в кодировке DOS. Необходимо как то преобразовать в Win, чтобы выводить данные в форму... Если есть предложения -...

Какие кодировки(win, koi8, dos, mac, iso) поддерживает RichEdit - C++
Какие кодировки(win, koi8, dos, mac, iso) поддерживает RichEdit

WinAPI: CreateProcess и DOS-приложение - C++
Народ, просветите молодого и неопытного: Почему CreateProcess под Win2000 не может запустить DOS-приложение(Паскаль-программа,...

Что значит : приложение должно быть доступным для изменения левосторонним приложением - C++
Что значит : приложение должно быть доступным для изменения левосторонним приложением ? Вот код #include <iostream> #include...

2
bazile
62 / 38 / 20
Регистрация: 15.03.2007
Сообщений: 6,910
25.03.2009, 10:56 #2
Как мне кажется есть два способа
1) Функция CreateProcess() имеет параметр LPPROCESS_INFORMATION lpProcessInformation. С его помощью можно получить дескриптор созданного процесса. Затем можно с помощью функции WaitForSingleObject(hProcess, INFINITE) ожидать завершения процесса. Лучше это делать в отдельном потоке, чтобы не 'замораживать' основной поток программы.

2) Следить (по таймеру или снова в отдельном потоке) за состоянием процесса с помощью функции GetExitCodeProcess
0
rasweb
0 / 0 / 0
Регистрация: 19.05.2008
Сообщений: 28
25.03.2009, 14:35  [ТС] #3
Спасибо. Попробую. Вообще ты прав - надо больше читать исходников )).
Того же КреатПроцесса.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2009, 14:35
Привет! Вот еще темы с ответами:

Как на VB завершить запущенное приложение? - Visual Basic
Как на VB завершить запущенное приложение. Извесно только имя исполняемого файла. По CAD его не видно.

Как закрыть запущенное приложение? - Delphi
Добрый день. Подскажите как организовать следующее: в программе используется запуск ссылки: WinExec('rundll32...

Как поймать ошибку, выдаваемую запускаемым приложением - C#
Здравствуйте. Столкнулся с такой проблемой, есть не большое приложение которое приходится запускать много много раз. с многократным...

Отображать запущенное приложение не в TaskBar, а в SysTray - Delphi
Как сделать, чтобы запущенная прога не отображалась в таскбаре, а только в систрее. Может у кого для этого есть готовый кусок кода?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru