|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.05.2011, 01:28 | #1 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
Запуск одной программы из другой
Добрый день, в общем я бы хотел запустить одну программу из другой. Для этого существует функция WinExec.
Есть небольшой вопрос, для начала, как эта функция работает, и второй вопрос, вернет ли она меня к программе из которой я запустил текущую программу? |
27.05.2011, 01:36 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> Для этого существует функция WinExec
неа, для этого уже лет 16 существует CreateProcess() > вернет ли она меня вернет ли сразу управление? скорей всего да (речь про WinExec, CreateProcess вернёт сразу же).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.05.2011, 01:40 | #3 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
хм пример не могли бы привести?
|
27.05.2011, 01:41 | #4 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
и данная функция сохранит весь контекст программы из которой запустили?
|
27.05.2011, 01:53 | #5 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> хм пример не могли бы привести?
легко > и данная функция сохранит весь контекст программы из которой запустили? если контекст == окружение, то: Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
27.05.2011, 01:55 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
что значит сохранит контекст?
она запустит процесс и все(либо на паузе либо нет) можно перенаправить потоки stdin,stdout,stderr. и еще немного настроек. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
27.05.2011, 02:06 | #7 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
хм, тогда еще один вопрос, как мне вывести программу из режима ожидания, если я процесс запускаемой программы буду уничтожать в ней же?
|
27.05.2011, 02:10 | #8 |
Форумчанин
Регистрация: 08.11.2010
Сообщений: 593
|
Код:
|
27.05.2011, 02:10 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а если вы не поставите ожидание, то собственно говоря ваш процесс и не будет ждать завершения
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
27.05.2011, 02:13 | #10 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
у вас в pi есть хендл процесса(который кстати надо закрыть потом, так же как и потока) по нему и ждите через WaitForSingleObject если она вернет WAIT_TIMEOUT значит процесс еще не завершился Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
позиция одной строки в другой | Даниил_глазко | Помощь студентам | 1 | 21.11.2010 18:17 |
Запуск только одной копии приложения | Casper-SC | Общие вопросы .NET | 1 | 18.07.2010 02:06 |
Как вызвать функцию одной программы из другой. | KobolD | Помощь студентам | 8 | 10.06.2010 15:06 |
Запуск нескольких клиентов с одной машины | unit-85 | Работа с сетью в Delphi | 4 | 16.03.2009 13:02 |
Запуск программы на выполнение из другой программы. | ViNcHeStEr | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 18.06.2008 14:33 |