Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

Запуск внешнего приложения как модальное окно текущего   Найти похожие ветки 

 
Vasilisk   (2004-11-03 11:34) [0]

Мастера, мне необходимо запустить внешнее приложение из своего, и дождаться окончания его выполнения (например элемент "Панели управления"), но при этом, чтобы оно было МОДАЛЬНЫМ окном по отношению к моему приложению.

P.S. Пробывал CreateProcess, ShellExecuteEx - не совсем то, что нужно (при переключении задач, я опять попадаю на окно моего приложения, а НЕ на открытое им окно другого приложения), может не во всех параметрх разобрался? Кто знает - подскажите.

Заренее благодарен.


 
Digitman ©   (2004-11-03 11:57) [1]


> может не во всех параметрх разобрался?


нет там никаких параметров, управляющих "модальностью".

свойством модальности может обладать окно, но не процесс, и уж тем более не приложение

а для того чтобы в твоем случае заведомо немодальное окно порожденного процесса оставалось на переднем плане и не теряло фокус до момента его закрытия юзером, можно, например, установить хук на сообщение WM_ACTIVATEAPP гл.окна порожденного процесса, и при обнаружении параметра FALSE немедленно же слать этому окну тот же WM_ACTIVATEAPP с параметром TRUE, т.е. принимать меры по принудительной активации.


 
TUser ©   (2004-11-03 12:10) [2]

Может WaitForSingleObject после CreateProcess - и ждать, пока внешнее приложение не выполнится?


 
Vasilisk   (2004-11-03 12:16) [3]

For TUser:

Может WaitForSingleObject... пробывал, эта функци блокирует обработку сообщений окна "родительской программы" но даёт нужный эффект, НО мне нужно чтоб и оно перерисовывалось когда например "хлопаешь" окнами других программ, следовательно - не подходит. Констукция типа : while WaitForSingleObject(PI.hProcess, 0) = WAIT_TIMEOUT do Application.ProcessMessages;
снимает эффект "модальности".


 
TUser ©   (2004-11-03 12:25) [4]

Тогда, наверное, придется переписать wndproc родительского приложения. И ввести флаг - есть/нет подальное окно. Приерно так
if {нет модального окна} or (msg = wm_paint) then
inherited



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

Форум: "WinAPI";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
1-1102067434
sloug
2004-12-03 12:50
2004.12.19
XPManifest


1-1102411406
mega
2004-12-07 12:23
2004.12.19
Дорисовка PopupMenu


3-1101129616
Прямой
2004-11-22 16:20
2004.12.19
BLOB считать в TImage не могу = прикол


9-1092551454
ALex123
2004-08-15 10:30
2004.12.19
Wave


14-1100622564
ИМХО
2004-11-16 19:29
2004.12.19
Связать мобильник с компом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский