Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Dlmx on June 03, 2021, 01:08:19 PM

Title: Если окно развёрнуто и поверх всех окон, то произвести скрипт
Post by: Dlmx on June 03, 2021, 01:08:19 PM
Здравствуйте!

Помогите пожалуйста! Измучился! Не понимаю, как сделать!

Если открыто и развёрнуто окно "MicroSIP - 131", то проигрывается скрипт:

Code: (clickermann) [Select]
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)

С данным скриптом если окно развёрнуто, всё работает хорошо!
Если окно свёрнуто, оно кликает по координате, якобы окно развернуто! В итоге кликает не туда.
Title: Re: Если окно развёрнуто и поверх всех окон, то произвести скрипт
Post by: Vint on June 03, 2021, 02:23:23 PM
И что это за конструкция?
Code: (clickermann) [Select]
IF(WNDFIND("MicroSIP - 131"), 1)Она неправильная. Что значит ', 1' в условии? Может имелось ввиду
Code: (clickermann) [Select]
IF(WNDFIND("MicroSIP - 131", 1))Хотя вряд ли, дальше то этого нет.


WNDFIND ищет hwnd окна по имени. Если окно есть - вернёт hwhd и выполнится условие. Команда не умеет определять свёрнуто окно или нет.
Зато у свёрнутого окна координаты равны -32000, мог бы заметить если бы вывел в лог. Вот по ним можно понять развёрнуто или нет
Code: (clickermann) [Select]
$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
Title: Re: Если окно развёрнуто и поверх всех окон, то произвести скрипт
Post by: Dlmx on June 03, 2021, 08:29:02 PM
Спасибо!!! Получилось))))))))