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

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

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

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

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

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

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

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

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

C++ Как узнать каким приложением используется порт ?
DOS -> WIN C++
C++ Как определить занятость файла другим приложением?
WinAPI: CreateProcess и DOS-приложение C++
Какие кодировки(win, koi8, dos, mac, iso) поддерживает RichEdit C++
C++ Конвертация кодировки DOS в Win
Как в элементе управления CListCtrl поймать нажатие определенной клавиши на элементе? C++
C++ Как сделать меню в программе под DOS, написанную в С++3.0?
C++ Как скомпилировать программу на C++ для DOS
C++ Что значит : приложение должно быть доступным для изменения левосторонним приложением
Как принять параметры приложением, запущенным через ShellExecute C++
Не переводит из Win в Dos и обратно C++

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

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

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

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