![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отследить окончание созданного процесса [D6, Win95/98, WinME, Win2k]
ilysha © (2002-04-11 10:46:00)Суть - есть многостраничный редактор.
Открываем в нем файл, что-то делаем и затем вызываем другую программу редактирования и передаем ей этот файл.
Проблема такова - я создаю процесс:
CreateProcess(nil, PChar(Editor+ " "+ OpenFileName), nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
Мне нужно заблокировать доступ к этому файлу до тех пор, пока не будет закрыт созданный процесс.
Какой способ можно применить, если я заранее не знаю, какая программа будет запущена - Word, Notepad или Photoshop.
Из справки я знаю, что многое можно узнать из ProcessInfo, но как это сделать?
Виктор Щербаков (2002-04-11 11:38:00) [1]Отправляй в главное окно запущенного приложения WM_CLOSE.
Появится окошко с вопросом сохранять/не сохранять.
Но вот определить, какое окно является "главным" не просто.
panov (2002-04-11 11:38:00) [2]>ilysha © (11.04.02 11:34)
Посылай второму приложению сообщение WM_CLOSE.
ilysha (2002-04-11 11:34:00) [3]Спасибо - то, что надо.
Возникает другой вопрос - я предлагаю пользователю возможность принудительно остановить процесс и для этого использую TerminateProcess. Но это не дает процессу сохранить внесенные в файл изменения.
Как здесь быть?
Alx2 (2002-04-11 10:55:00) [4]Посмотри WaitForSingleObject(ProcessHandle, INFINITE)