![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как предотвратить закрытие приложения [D5, D6, Win2k]
Vovik © (2002-10-01 16:40:00)Уважаемые мастера, подскажите как запустить внешнее приложение и впоследствии обрабатывать его закрытие . И можно ли в этот момент передать ему нажатие клавиши?
korzh (2002-10-01 17:14:00) [1]попробуй SetWindowLong - оно может поменять стиль окна
korzh (2002-10-01 17:12:00) [2]ну что ты так, даже в help не заглянул...
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);
Handle - это дескриптор HWND твоего окна (или св-во Handle формы), на случай если оно будет получать всякие MessageBox"ы от запускаемого процесса....
а чтоб дождаться его закрытия есть ф-ция WaitForSingleObject
она подвесит твой процесс на заданное к-во миллисекунд или до заверш. просесса с заданным HINSTANCE. а чтоб приложение не висло лучше создать свой TThread и запускать ее там.
хотя наверное есть способ проще......
описание см в помощи
Vovik (2002-10-01 17:01:00) [3]Еще вопрос: Можно ли имея handle окна изменить его вид, точнее,
можно ли убрать кнопку закрытия окна (крестик), что бы пользователь мог выйти из приложения только корректно, а не по тупому закрытию окна.
Vovik (2002-10-01 16:42:00) [4]На первую часть нашел ответ:
ShellExecute(handle, "open","proga.exe", PCHAR("параметр"), nil, SW_SHOWNORMAL);
Подскажите как узнать его handle ? и возможно ли в момент его закрытия передать нажатие клавиши в нем?