|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.05.2007, 11:50 | #1 |
Регистрация: 22.04.2007
Сообщений: 7
|
Запуск приложения и активность формы
На форме размещены кнопки, которые отвечают за запуск различных приложений. Как сделать , чтобы форму нельзя было сделать активной, пока работает запущенное приложение (т.е нельзя запускать более одного приложения). Как только приложение завершило работу, фокус передать форме.
|
10.05.2007, 12:47 | #2 |
Иркутянин!!!
Пользователь
Регистрация: 01.11.2006
Сообщений: 83
|
Когда запускаешь какое либо приложение, в системе инициируется его Handle. При запуске внешней программы (по нажатии на твои кнопки) активируешь таймер проверки наличия в системе Handle запущеного тобою приложения. В это же время блокируй окно своей формы. Как только программа завершается, handle разрушается и в системе его уже нет. Программа его не видит и делает себя в Normal Mode. Вот. Вроде так. Ищи handle с помощью EnumWindows.
|
10.05.2007, 12:58 | #3 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
У меня так получилось вроде:
procedure TForm1.Timer1Timer(Sender: TObject); VAR Wnd : hWnd; buff: ARRAY [0..127] OF Char; s:boolean; begin s:=false; Wnd := GetWindow(Handle, gw_HWndFirst); WHILE Wnd <> 0 DO BEGIN IF (Wnd <> Application.Handle) AND IsWindowVisible(Wnd) AND (GetWindow(Wnd, gw_Owner) = 0) AND (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) THEN BEGIN GetWindowText(Wnd, buff, sizeof(buff)); if StrPas(buff)='Процесс' then s:=true; END; Wnd := GetWindow(Wnd, gw_hWndNext); END; if s=true then form1.Visible:=false else form1.Visible:=true; end; Последний раз редактировалось Трофимов Александр; 10.05.2007 в 13:02. |
11.05.2007, 20:30 | #4 |
Heavy metal
Пользователь
Регистрация: 02.04.2007
Сообщений: 42
|
Что-то вроде этого:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запуск внешнего приложения | Fia | Общие вопросы Delphi | 13 | 18.09.2008 07:27 |
Запуск приложения | Артэс | Общие вопросы C/C++ | 2 | 07.06.2008 17:38 |
Активность формы | BanDit | Общие вопросы Delphi | 2 | 27.12.2007 21:40 |
Запуск exe-файла из приложения | TerVovik | Помощь студентам | 4 | 12.12.2007 16:21 |
Запуск приложения из DLL | Hollander | Общие вопросы Delphi | 2 | 17.05.2007 20:04 |