Belkin
|
Posted: Tue Apr 25, 2006 23:09 Post subject: |
|
|
Причина в том, что скрипт работает очень быстро, и к тому моменту, когда (командой Run) запустится Тотал, все последующие команды уже успеют выполниться, не сделав того, что должны.
Чтобы этого не происходило, нужно после команды Run добавить ожидание окна Тотала (команда WinWait, ahk_class TTOTAL_CMD).
Кроме того, для большей надежности, лучше использовать команду SendMessage, а не PostMessage. Эти команды отличаются тем, что скрипт после высылки SendMessage ждет ответа от приложения (в нашем случае ответа от Тотала), что команда принята и выполнена. А при использовании PostMessage, скрипт ответа не ждет.
В общем случае лучше использовать команду SendMessage. Исключение составляют ситуации, когда посланная нами команда вызывает модальный диалог, и мы не хотим, чтобы скрипт ждал, пока этот диалог завершится.
Добавлю, что время ожидания ответа после SendMessage не бесконечно, а составляет пять секунд. Но этого времени больше, чем достаточно, чтобы обработать поставленную в очередь команду (винда ведь многозадачна).
Кстати, синтаксис команды SendMessage полностью идентичен команде PostMessage. Т.е., например:
SendMessage, 0x433, 2127,,, ahk_class TTOTAL_CMD ; cm_OpenRecycled
Привет. Успехов. |
|