чем можно заменить...

 

Подскажите... чем можно заменить или как сделать...

в советнике при выполнении определенных условий выводится MessageBox ... ожидаем реакции пользователя (жмых кнопки), но если пользователь не откликнется в течении текущей свечи MessageBox воспринимает это как IDNO... как можно такое реализовать?

 
Скорее всего с помощью эмуляции нажатия кнопки например пробела.
 

Так будет работать?


CurrentTime=Time[0];

if (условие) res MessageBox("Бла-бла-бла... Продолжить?","Question", MB_YESNO|MB_ICONQUESTION);

if (res==IDNO || CurrentTime<Time[0]) return;

 
Нет. Вызов бокса модальный, так что выполнение программы останавливается, пока кто-то не нажмет кнопку, или параллельный скрипт не сэмулирует нажатие.
 

Вместо эмулирования наверно проще написать на С или D dll со своим mesagem. Например в winapi есть MessageBox c таймаутом - MessageBoxTimeoutA. Тогда окно закроется через n секунд. Т.к. С сейчас не установленно, работающий пример не имею. Вот: http://www.sql.ru/forum/actualthread.aspx?tid=413171 

Однако буду пробовать. Но пока некогда.:((

 

Получилось! :))

 
Alen_T >>:

Получилось! :))

кидай сюда :)


хотя в принципе меня устраивает и вот такой вариант...

CurrentTime=Time[0];

if (условие) res MessageBox("Бла-бла-бла... Продолжить?","Question", MB_YESNO|MB_ICONQUESTION);

if (res==IDNO || CurrentTime<Time[0]) return;

все одно, пока юзверь не ответил - программе стоп! ответил - анализируем не пролапланил ли он время сигнала... :)

Причина обращения: