Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как предотвратить закрытие приложения [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 ? и возможно ли в момент его закрытия передать нажатие клавиши в нем?


Наверх

Титульная страница Поиск, карта сайта Написать письмо