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

Вниз

Проблемы с сообщениями Windows   Найти похожие ветки 

 
Putnik ©   (2007-09-01 10:39) [0]

Уважаемые мастера форума, я столкнулся с такой проблемой: пишу программу для автоматизации действий с некоторой программой( Хроматек Аналитик), в нее входит автоматическое открытие файла, ввод в диалоговые окна нужных значений, сохраннение файла, дело в том что после открытия первого диалогового окна которому я хотел бы послать сообщением wm_settext, ничего не происходит, а выполняются следующие команды, связанные с открытием и поиском следующего диалогового окна,  в итоге получается куча диалоговых окон до которых не доходят посылаемые сообщения.
Я полагаю что это может быть связано с тем, что сообщения главному окну "главнее" дочерних окон, может быть что диалоговые окна создаются из ресурсов, или в моем полном непонимании принципов обмена сообщения, в этом случае просветите меня, пожалуйста!
p.s. при выполнении пошагово f8 из среды разработки все выполняется как и задумывалось
p.p.s. я не программист, а химик, сильно ногами не пинать:)


 
palva ©   (2007-09-01 10:47) [1]

Ну наверно, сообщения нужно посылать не диалоговому окну, а полю ввода на этом окне.

> я не программист, а химик
О! Самогон, наркотик, гексоген.


 
Putnik ©   (2007-09-01 14:11) [2]

ya ge ne nastol"ko himik:)


 
Virgo_Style ©   (2007-09-01 18:59) [3]

Putnik ©   (01.09.07 10:39)
при выполнении пошагово f8 из среды разработки все выполняется как и задумывалось


А если между посылкой сообщений поставить sleep"ы? Быть может, диалоговое окно не успевает создаться и "его" сообщения уходят в пустоту? Конечно, окончательное решение не должно базироваться на sleep"ах, но для проверки сойдет, я думаю.


 
Putnik ©   (2007-09-02 12:32) [4]

2 Virgo_Style ©
Спасибо. Все именно из-за того, что окно не успевало создаваться.
Тогда еще вопрос. Можно вместо sleep"a использовать цикл, условием  выхода из которого, будет являтся ненулевой handle этого диалогового окна? И если можно, что должно содержаться в его теле?


 
Virgo_Style ©   (2007-09-02 12:42) [5]

Думаю, можно. А в тело цикла, чтобы систему не грузить, поставить sleep с небольшим интервалом.

Или попробовать использовать WaitForInputIdle.

Честно говоря, я не очень-то компетентен в этих вопросах)


 
{RASkov} ©   (2007-09-02 14:05) [6]

> [4] Putnik ©   (02.09.07 12:32)

while Handle=0 do Application.ProcessMessage;

например:
while FindFindow("","")=0 do Application.ProcessMessage;
Ну и придумать аварийный выход из цикла
например так:
i=0;
while (Handle=0) and (i<1000) do begin
Application.ProcessMessage;
INC(i);
end;
если Handle=0 тогда ERROR;

Но лучше воспользоваться другими способами....


 
{RASkov} ©   (2007-09-02 14:13) [7]

> условием  выхода из которого, будет являтся ненулевой handle

> что должно содержаться в его теле?

поиск этого хэндла....


 
Putnik ©   (2007-09-04 12:42) [8]

Спасибо, что приняли участие.
> [7] поиск будет содержаться в условии, а не в теле



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

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

Наверх





Память: 0.46 MB
Время: 0.046 c
15-1188971495
shlst
2007-09-05 09:51
2007.09.30
Озвучивание фильмов


2-1189001572
Dmitriy_
2007-09-05 18:12
2007.09.30
Как развернуть чужое окно?


4-1175497718
valager
2007-04-02 11:08
2007.09.30
Чтение данных из другого приложения


2-1188903449
em240
2007-09-04 14:57
2007.09.30
MSSQL2000+запуск функции из DLL


3-1180354657
Вадим71
2007-05-28 16:17
2007.09.30
Как записать дату и время в smallDateTime





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