Автор Тема: Если окно развёрнуто и поверх всех окон, то произвести скрипт  (Прочитано 2965 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Dlmx

  • Зашел в гости
  • *
  • Сообщений: 9
    • Просмотр профиля
Здравствуйте!

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

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

Код: Clickermann
  1. IF(WNDFIND("MicroSIP - 131"), 1)
  2.   WNDGETINFO(WNDFIND("MicroSIP - 131"), $var1, $var2, $var3, $var4) // Собирает информацию об окне
  3.   WAITMS(10)
  4.   LCLICK($var1+121, $var2+312)     // Нажать на кнопку
  5.   WAITMS(20)
  6.   WNDSTATE(WNDFIND("MicroSIP - 131"), 0) // Свернуть MicroSip
  7.   WAITMS(20)
  8. END_IF

Если окно свёрнуто, но открыто, то WAITMS(20)

С данным скриптом если окно развёрнуто, всё работает хорошо!
Если окно свёрнуто, оно кликает по координате, якобы окно развернуто! В итоге кликает не туда.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3831
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
И что это за конструкция?
Код: Clickermann
  1. IF(WNDFIND("MicroSIP - 131"), 1)
Она неправильная. Что значит ', 1' в условии? Может имелось ввиду
Код: Clickermann
  1. IF(WNDFIND("MicroSIP - 131", 1))
Хотя вряд ли, дальше то этого нет.


WNDFIND ищет hwnd окна по имени. Если окно есть - вернёт hwhd и выполнится условие. Команда не умеет определять свёрнуто окно или нет.
Зато у свёрнутого окна координаты равны -32000, мог бы заметить если бы вывел в лог. Вот по ним можно понять развёрнуто или нет
Код: Clickermann
  1. $hwnd = WNDFIND("MicroSIP - 131")
  2. IF($hwnd)
  3.    WNDGETINFO($hwnd, $win_x, $win_y, $win_w, $win_h)
  4.    LOGWRITE("Окно: ", $win_x, ",", $win_y, "  ", $win_w, "x", $win_h)
  5.    IF(($win_x + $win_y) ! -64000)
  6.        LOGWRITE("Окно развернуто")
  7.        LCLICK($win_x+121, $win_y+312)     // Нажать на кнопку
  8.        WAITMS(20)
  9.        WNDSTATE($hwnd, 0) // Свернуть MicroSip
  10.        WAITMS(20)
  11.    ELSE
  12.        WAITMS(20)
  13.        LOGWRITE("Окно свёрнуто")
  14.    END_IF
  15. ELSE
  16.    LOGWRITE("Окно не найдено!")
  17. END_IF
« Последнее редактирование: Июнь 03, 2021, 03:06:38 pm от Vint »


Dlmx

  • Зашел в гости
  • *
  • Сообщений: 9
    • Просмотр профиля
Спасибо!!! Получилось))))))))