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

Вниз

Программно запустить Delphi и дождаться полной загрузки   Найти похожие ветки 

 
IGray   (2011-08-12 13:08) [0]

Здравствуйте! Как сделать сабж, собственно?
Пробовал юзать ShellExecuteEx+WaitForInputIdle, но WaitForInputIdle отрабатывает гораздо раньше завершения загрузки... Заранее спасибо!


 
oldman ©   (2011-08-12 13:57) [1]

Что в вашем понимании есть "полная загрузка"?


 
IGray   (2011-08-12 14:06) [2]

Ну, скажем, когда в Delphi перейдёт в режим ожидания действий пользователя.


 
QAZ   (2011-08-12 14:33) [3]

там есть такой режим?


 
IGray   (2011-08-12 14:52) [4]

Не поверите - есть)
Delphi после загрузки ЖДЁТ, какой очередной шедевр вы родите ;)
А если при загрузке произошла ошибка - ЖДЁТ когда юзер нажмёт ОК


 
Cobalt ©   (2011-08-12 15:05) [5]

Определись, какое окно тебе необходимо для работы, и исследуй его состояние в "режим готовности" (видимо, или содержит определенный текст, или еще чего)


 
oldman ©   (2011-08-12 15:06) [6]

Вам очень повезло, что возникало только эти две ситуации.

По сабжу: сомневаюсь, что при переходе в "режим ожидания действий пользователя" генерируется хоть какое-нибудь системное сообщение...


 
oldman ©   (2011-08-12 15:09) [7]

После запуска программы она может начать собирать рабочую информацию (цеплять библиотеки, проверять настройки и т.д.)
Но при этом программа "полностью загружена" и работоспособна.
А пользователю для нажатия ОК еще курить и курить...


 
IGray   (2011-08-12 15:13) [8]


> Вам очень повезло, что возникало только эти две ситуации.

Это я для примера.


 
IGray   (2011-08-12 15:42) [9]


> oldman ©   (12.08.11 15:09) [7]
> После запуска программы она может начать собирать рабочую
> информацию (цеплять библиотеки, проверять настройки и т.
> д.)
> Но при этом программа "полностью загружена" и работоспособна.
>

Мне нужно отследить именно ту ситуацию, о которой я сказал выше...
Могу ещё конкретнее - когда главное окно Delphi станет активным.


 
Anatoly Podgoretsky ©   (2011-08-12 16:56) [10]


> oldman ©   (12.08.11 15:09) [7]

Ему не для программы, а для Дельфи


 
oldman ©   (2011-08-12 17:17) [11]


> когда главное окно Delphi станет активным


может, что никогда
что в твоем понимании "активным"


 
Cobalt ©   (2011-08-12 19:03) [12]

вот, главное - четкая постановка задачи :-)


 
IGray   (2011-08-12 20:48) [13]


> Cobalt ©   (12.08.11 19:03) [12]
> вот, главное - четкая постановка задачи :-)

А я думал, что главное - в каждой теме отметиться, и, желательно, не раз ;)

Ещё конкретнее - мне нужно программно:
1. Загрузить в Delphi некоторый проект.
2. После этого открыть в Delphi некоторую форму из этого проекта.

И первое и второе по-отдельности я успешно делаю посредством ShellExecute, но последовательно два вызова ShellExecute приводят к запуску двух копий Delphi (а иногда и похлеще эффекты бывают).
Это происходит из-за того, что второй вызов Delphi начинается до того как закончится загрузка проекта в результате первого вызова.

Отсюда, собственно, и вопрос - как дождаться полной загрузки проекта в Delphi?


 
Германн ©   (2011-08-13 01:02) [14]


> А я думал, что главное - в каждой теме отметиться, и, желательно,
>  не раз ;)

Отмечаюсь первый раз.
А зачем нужно запускать Дельфи программно, да ещё и программно открывать в IDE какую-то форму?
Очень похоже на бред.
Программно запускать консольный компилятор Дельфи - это я понимаю и принимаю. Всё прочее - очень похоже на бред.

P.S.
Короче!
http://www.gunsmoker.ru/2008/10/x-y-z.html


 
IGray   (2011-08-13 11:15) [15]


> Германн ©   (13.08.11 01:02) [14]
> А зачем нужно запускать Дельфи программно, да ещё и программно открывать в IDE какую-то форму?
> Очень похоже на бред.

Вы задаёте вопрос, и, не дожидаясь ответа, сами себе на него отвечаете.
Возможно, Вам сложно будет в это поверить, но иногда ЧЕЛОВЕКУ нужен ответ именно на ТОТ вопрос, который он задаёт (давайте всё-таки допускать такое чудо), и может не стоит сразу записывать собеседника в идиоты, только потому, что Вы не понимаете, нафига ему это надо?
Как я понял, Вы, не зная ответ на мой вопрос, ждёте, когда я изменю условия задачи до такой степени, что один из имеющихся у Вас ответов к ним подойдёт? Но извините, в данном случае это невозможно.
Хотите, чтобы я на 5-ти страницах доказал Вам, что мне нужно именно то, что я попросил? Но разве это будет эффективной тратой Вашего и моего времени?


 
Германн ©   (2011-08-14 00:23) [16]


> Возможно, Вам сложно будет в это поверить, но иногда ЧЕЛОВЕКУ
> нужен ответ именно на ТОТ вопрос, который он задаёт

Почему мне будет сложно поверить? Сам не раз бывал в такой ситуации. Хочется что-то сделать, а не получается.

P.S.
Но если этот человек задает вопрос "неточно" и не может сформулировать важные критерии вопроса так, что они будут понятны другим участникам форума, то в 99.9% случаев ему нужно самому искать пути решения своей проблемы.


 
Дмитрий Белькевич   (2011-08-14 09:50) [17]


> Хотите, чтобы я на 5-ти страницах доказал Вам, что мне нужно
> именно то, что я попросил? Но разве это будет эффективной
> тратой Вашего и моего времени?


Обычно достаточно одного-двух предложений.

Ответ на вопрос не знаю. Но знаю, куда копать:

http://google.com/ WaitForInputIdle

http://delphimaster.net/ WaitForInputIdle


 
Игорь Шевченко ©   (2011-08-15 10:30) [18]


> Отсюда, собственно, и вопрос - как дождаться полной загрузки
> проекта в Delphi?


поищи, как sysintenals с regedit работает, возможно подобный способ поможет



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

Форум: "Основная";
Текущий архив: 2013.09.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.003 c
10-1185282081
niko_
2007-07-24 17:01
2013.09.08
Получение свойств COM-объектов расположенных на форме


2-1356350722
ford
2012-12-24 16:05
2013.09.08
indy IdSMTP vs Yandex.ru and Mail.ru


11-1248039464
Ruzzz
2009-07-20 01:37
2013.09.08
TrayIcon и WM_CLOSE


15-1364373642
brother_
2013-03-27 12:40
2013.09.08
Ностальгия по OS


15-1364755856
Писатель
2013-03-31 22:50
2013.09.08
Траблы с VBox, установка NC5





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский