Тема: AHK: Проблема с if
Здравствуйте. Функция должна проверять изменялся ли файл и запускать соответствующие скрипты, но почему то иногда срабатывают сразу оба условия, иногда не срабатывает ни одно, иногда выполняется одно вместо другого. Пробовал и через if a=b/a<>b и через ifEqual/ifNotEqual - результат один. в чем может быть проблема?
checkTime(file)
{
FileGetTime, mainChangeTime, %file%
IniRead, mainIniTime, %file%, Time, changeTime
ifEqual, %mainChangeTime%, %mainIniTime%
{
RunWait, 1.ahk
}
ifNotEqual, %mainChangeTime%, %mainIniTime%
{
IniWrite, %mainChangeTime%, %file%, Time, changeTime
FileSetTime, %mainChangeTime%, %file%
RunWait, 2.ahk
RunWait, 3.ahk %file%
}
}
UPD: Помогли решить проблему с одновременным срабатыванием, оказалось дело было не в этом куске кода. Появилась другая проблема: при сравнении двух одинаковых дат все равно срабатывает NotEqual.
FileGetTime, mainChangeTime, 123.ini
IniRead, mainIniTime, 123.ini, Time, changeTime
ifNotEqual, %mainChangeTime%, %mainIniTime%
{
IniWrite, %mainChangeTime%, 123.ini, Time, changeTime
FileSetTime, %mainChangeTime%, 123.ini
MsgBox, "%mainChangeTime%" not equal "%mainIniTime%"
}
ifEqual, %mainChangeTime%, %mainIniTime%
{
MsgBox, "%mainChangeTime%" equal "%mainIniTime%"
}
UPD2: Поменял Euqal/NotEqual местами и все заработало как надо. Но почему ifEqual возвращает false при равенстве? Или все делается правильно, просто я чего-то не понимаю? Буду благодарен если кто-то объяснит.
И еще вопрос: возможно ли закрыть разом все запущенные потоки ahk?