Author Topic: Програмная привязка к окну  (Read 2436 times)

0 Members and 1 Guest are viewing this topic.

green_whistle

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Програмная привязка к окну
« on: December 22, 2017, 02:19:00 PM »
Добрый день.

Подскажите, можно ли програмно привязаться к окну? Не навести на него и нажать Alt-W, а как-то так:

  $hwnd = wndfind("Суперокно", 1)
  IF ( $hwnd > 0 )
      ... Привязываемся к окну и в дальнейшем работаем только и исключительно с ним ...
  END_IF

green_whistle

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Програмная привязка к окну
« Reply #1 on: December 22, 2017, 04:04:24 PM »
Спасибо! Работает!
В хэлпе про HSET написано "устанавливает новый рабочий элемент для оконного режима". Я просто не понял, что это означает, когда читал.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Програмная привязка к окну
« Reply #2 on: December 22, 2017, 04:07:29 PM »
По умному лучше так
Code: (clickermann) [Select]
$hwnd = wndfind("Суперокно", 1)
IF($hwnd > 0)
   HSET($hwnd,1)
ELSE
   HINTPOPUP("Окно не найдено", "Ошибка")
   HALT
END_IF

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Програмная привязка к окну
« Reply #3 on: December 22, 2017, 05:39:44 PM »
Вот с ожиданием
Code: (clickermann) [Select]
$time = $_time_t + 60
WHILE($time > $_time_t) // Ожидаем окно 60 секунд
   $hwnd = wndfind("Суперокно", 1)
   IF($hwnd > 0)
      HSET($hwnd,1)
      $time = 0
   ELSE
      WAITMS(100)
   END_IF
END_CYC
IF($time ! 0)
   HINTPOPUP("Окно не найдено", "Ошибка")
   HALT
END_IF

clicker_student

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Програмная привязка к окну
« Reply #4 on: February 17, 2019, 05:41:56 PM »
Прошу помочь с этим вопросом и мне. Сделал скрипт, отлалил - работает. Решил использовать привязку к окну - и перестал работать.

У меня идет активная работа с диалоговыми окнами в приложении, первым делом я вывожу окно приложения на передний план, задаю ему размеры, перемещаю в координаты (0,0).
И после этого добавил привязку к окну.
Затем я кликаю правой кнопкой по окну приложения, чтобы появилось окошко контекстного меню со словом "Свойства". Я нахожу это снятый скриншот этого окна с помощью "IF_PICTURE_IN", получаю координаты и кликаю по нему. И дальше идет работа.

Так вот, как только я добавил привязку, перестало находить картинку со словом "Свойства". Такое оущущение, что теперь Кликерман видит только главное окно приложения, к которому привязался по HWND и не видит его дочерние диалоговые окна. Это правда?

Если так - то как мне решить проблему? Я хотел включить привязку, запускать скрипт Кликермана и продолжать работать за компьютером. Это невозможно, если активно используются дочерние окна главного приложения?

Буду благодарен за подсказки/советы.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Програмная привязка к окну
« Reply #5 on: February 17, 2019, 08:15:42 PM »
Если комп позволяет используй виртуальную машину.