Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Dlmx on June 03, 2021, 01:08:19 PM
-
Здравствуйте!
Помогите пожалуйста! Измучился! Не понимаю, как сделать!
Если открыто и развёрнуто окно "MicroSIP - 131", то проигрывается скрипт:
IF(WNDFIND("MicroSIP - 131"), 1)
WNDGETINFO(WNDFIND("MicroSIP - 131"), $var1, $var2, $var3, $var4) // Собирает информацию об окне
WAITMS(10)
LCLICK($var1+121, $var2+312) // Нажать на кнопку
WAITMS(20)
WNDSTATE(WNDFIND("MicroSIP - 131"), 0) // Свернуть MicroSip
WAITMS(20)
END_IF
Если окно свёрнуто, но открыто, то WAITMS(20)
С данным скриптом если окно развёрнуто, всё работает хорошо!
Если окно свёрнуто, оно кликает по координате, якобы окно развернуто! В итоге кликает не туда.
-
И что это за конструкция?
IF(WNDFIND("MicroSIP - 131"), 1)
Она неправильная. Что значит ', 1' в условии? Может имелось ввиду
IF(WNDFIND("MicroSIP - 131", 1))
Хотя вряд ли, дальше то этого нет.
WNDFIND ищет hwnd окна по имени. Если окно есть - вернёт hwhd и выполнится условие. Команда не умеет определять свёрнуто окно или нет.
Зато у свёрнутого окна координаты равны -32000, мог бы заметить если бы вывел в лог. Вот по ним можно понять развёрнуто или нет
$hwnd = WNDFIND("MicroSIP - 131")
IF($hwnd)
WNDGETINFO($hwnd, $win_x, $win_y, $win_w, $win_h)
LOGWRITE("Окно: ", $win_x, ",", $win_y, " ", $win_w, "x", $win_h)
IF(($win_x + $win_y) ! -64000)
LOGWRITE("Окно развернуто")
LCLICK($win_x+121, $win_y+312) // Нажать на кнопку
WAITMS(20)
WNDSTATE($hwnd, 0) // Свернуть MicroSip
WAITMS(20)
ELSE
WAITMS(20)
LOGWRITE("Окно свёрнуто")
END_IF
ELSE
LOGWRITE("Окно не найдено!")
END_IF
-
Спасибо!!! Получилось))))))))