Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.20;
Скачать: CL | DM;

Вниз

Межпроцесная модальность.   Найти похожие ветки 

 
Дмитрий С ©   (2015-02-02 13:56) [0]

Можно ли (и как) запустить программу так, чтобы ее окно стало модальным для моего приложения?


 
Дмитрий С ©   (2015-02-02 13:58) [1]

Учитывая, что у этого приложения могут быть свои модальные окна (MessageBox-ы).

Обе программы на Delphi7 и обе я могу править.


 
junglecat ©   (2015-02-02 14:04) [2]

CreateProcess + WaitForSingleObject(hProcess)


 
DVM ©   (2015-02-02 15:32) [3]


> Дмитрий С ©   (02.02.15 13:56) 


> чтобы ее окно стало модальным для моего приложения?

Модальным может быть окно по отношению к другому окну.

Приложение (процесс) - вещь пассивная и невизуальная и относительно нее что-либо не может быть модальным.

Тебе вероятно надо заблокировать поток твоей программы который запустил внешнее приложение до его завершения? Тогда, например [2]

Или что-то другое?


 
Дмитрий С ©   (2015-02-02 16:26) [4]


> DVM ©   (02.02.15 15:32) [3]

И я про окна.

Сейчас я как раз и делаю CreateProcess + WaitForSingleObject (в отдельном потоке).
Но надо чтобы пользователь не мог перейти в мою программу, пока не закончит работать в той, что я запустил - такой же эффект, что и при открытии модального окна.


 
junglecat ©   (2015-02-02 16:42) [5]

> чтобы пользователь не мог перейти в мою программу, пока
> не закончит работать в той

тогда в отдельном потоке смысла нет


 
DVM ©   (2015-02-02 16:43) [6]


> Сейчас я как раз и делаю CreateProcess + WaitForSingleObject
> (в отдельном потоке).

Зачем в отдельном потоке то?  Если ты это сделаешь в отдельном потоке, то интерфейс твоей программы будет доступен и вся "модальность" пропадет.


 
Дмитрий С ©   (2015-02-02 17:06) [7]

Я сделал активацию открытого приложения, когда мое оказывается в фокусе - пока работает.

Если сделать WaitForSingleObject - то мое приложение будет считаться системой зависшим - чего я не хочу.


 
кгшзх ©   (2015-02-02 19:37) [8]

а кто мешает ждать в цикле с небольшим таймаутом и обработкой сообщений
не говоря уже о MsgWaitForMultipleObjects


 
Manaka ©   (2015-02-02 21:19) [9]


> Обе программы на Delphi7 и обе я могу править.


)))
Сделай программу 2 процедурой программы 1 и запускай в модальном окне
)))


 
Германн ©   (2015-02-03 02:10) [10]


> Сделай программу 2 процедурой программы 1 и запускай в модальном
> окне

Кстати да. Отличное решение.
Правда тут ещё и работать надо :(


 
virex(home) ©   (2015-02-03 10:35) [11]

>Дмитрий С ©   (02.02.15 13:56) [0]

произвольное sendmessage ведомому окну от контрольного приложения от которого ведомое окно становится например неактивным



Страницы: 1 вся ветка

Текущий архив: 2015.09.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
15-1422882243
ВладОшин
2015-02-02 16:04
2015.09.20
Set|Get CursorPos при закрытом окне RDP


15-1421926934
Kerk
2015-01-22 14:42
2015.09.20
Вакансия


15-1422739804
Юрий
2015-02-01 00:30
2015.09.20
С днем рождения ! 1 февраля 2015 воскресенье


15-1422873582
Дмитрий С
2015-02-02 13:39
2015.09.20
Как убрать "Возможно, эта программа установлена неправильно"


15-1423300267
Rouse_
2015-02-07 12:11
2015.09.20
Интересный таки нюанс с инлайн асмом в MS VC++ 2010