Форум: "Основная";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];
ВнизКак проследить закрытие 2 программы из 1 программы. Найти похожие ветки
← →
James1981Bond (2003-12-12 20:28) [0]У меня есть две программы, написанных мной, первая на Delphi,
а вторая на C++Builder, из первой я запускаю вторую функцией
ShellExecute. После запуска 2 программы я блокирую работу с 1
программой, а чтобы разблокировать мне надо проследить закрытие
2 программы. Как это проследить? (Если можно примерчик, небольшой)
Благодарю заранее!!!
← →
Zhirnov Maxim (2003-12-12 20:39) [1]На счёт ShellExecute не знаю (не пробовал никогда), но вот как это можно сделать через "ручное" создание процессов.
----------------
var
pStartupInfo: StartupInfo;
pProcessInformation: Process_Information;
begin
pStartupInfo.cb := SizeOf( StartupInfo );
pStartupInfo.lpReserved := nil;
pStartupInfo.lpDesktop := nil;
pStartupInfo.lpTitle := nil;
pStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
pStartupInfo.wShowWindow := SW_SHOWDEFAULT;
pStartupInfo.cbReserved2 := 0;
pStartupInfo.lpReserved2 := nil;
If not CreateProcess( PChar( Edit1.Text ), nil, nil, nil, True,
CREATE_DEFAULT_ERROR_MODE, nil, nil, pStartupInfo,
pProcessInformation ) then
MessageBox( Handle, PChar( IntToStr( GetLastError ) ), "Код ошибки", MB_IconError)
Else
begin
WaitForSingleObject( pProcessInformation.hProcess, Infinite );
CloseHandle( pProcessInformation.hProcess );
end;
----------------
В Edit1.Text должен быть путь к EXE"шнику.
Infinite означает, что пока не завершиться запущенный процесс, процесс запустивший будет "висеть" вечно.
← →
James1981Bond (2003-12-13 00:12) [2]Спасибо за ответ. Все получилось.
У меня еще вопрос:
Можно ли запустить из первой программы вторую и открыть сразу определенное дочернее окно второй программы?
← →
James1981Bond (2003-12-13 12:44) [3]Можно ли запустить из первой программы вторую и открыть сразу определенное дочернее окно второй программы?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c