1 (изменено: Pokerist, 2013-01-19 21:44:50)

Тема: AHK: Каково время выполнения команд?

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


IfExist, c:\%var%.txt   
    FileDelete, C:\%var%.txt

FileAppend,, C:\%var%.txt

...
         loop,  5
            {        
            ...             
            FileAppend, %var_dva%, C:\%var%.txt
            ...
            }

  зачастую в файле  оказывается как старая запись, так и новая. Получается, что скрипт не успевает удалить файл.  Как можно рассчитать время необходимое скрипту? Причём при разной степени загрузки компа.

Или может есть что-то типа "ClipWait" только для файлов и других комманд?

2

Re: AHK: Каково время выполнения команд?

Раз такое происходит, тем более загрузка CPU может быть разной, надёжнее после FileDelete использовать команду IfNotExist. Если файл всё ещё существует, подождать.

3

Re: AHK: Каково время выполнения команд?

Спасибо, хорошая идея.
  Вот так осуществил:

    IfExist, C:\123.txt
        {
        FileDelete, C:\123.txt
        loop, 1000    
            {
            Sleep, 5
            IfNotExist, C:\123.txt
            break        
            }
        }


Не первый раз встречаюсь с подобным.  Был случай, когда с таймером ждал появления определённого окна. При появлении,  определял его расположение, активировал,  и по полученным данным предпринимал определённые действия. 

Так вот если таймер был установлен на 10 мс, то расположение окна 3-5 раз из 10 определялось совершенно неверно.  А если таймер на 200, то сбоя ни разу не было.  Получается окно уже существовало, уже было активным, а своё "законное место" ещё не успевало занять.

  Поэтому всё же хотелось бы знать, как можно определить время срабатывания хотя бы некоторых команд. Или услышать какие-то соображения по более умному использованию операторов. Как в случае вверху топика.

Заранее, большое спасибо за помощь.