Author Topic: Кнопки и адресные строки  (Read 8354 times)

0 Members and 1 Guest are viewing this topic.

m.igel

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Кнопки и адресные строки
« on: January 13, 2017, 12:43:53 PM »
Добрый день.

Помогите, пожалуйста, разобраться в основах.
Верно ли я понимаю, что СМ может находить окна в "человеческом" понимании, т.е. "Блокнот", "Калькулятор" и т.п., но не может оперировать с элементами этих окон, такими, как адресная строка, название файла, кнопка [Сохранить] и единственный выход — искать картинки?

Положим, я хочу сохранить эту страницу. Жму Ctrl+S, указываю в адресной строке нужную папку (Ctrl+V путь), изменяю название файла, чтобы оно не было слишком длинным и не содержало запретных символов, жму [Сохранить].
В другом хорошем кликере MouseRobot это делается на раз, т.к. он распознаёт отдельные элементы. Не везде и не всегда, но как правило. Но как можно решить эту задачу в СМ?

Подозреваю, что сохранить страницу можно и без этих плясок, но я не знаю как.
В любом случае задача учебно-тренировочная, нужна в первую очередь для понимания.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Кнопки и адресные строки
« Reply #1 on: January 13, 2017, 01:18:40 PM »
Не умеет.
Но в твоей конкретной задаче можно после ввода имени просто нажать ENTER
Code: (clickermann) [Select]
KEYPRESS(#ENTER)
И обычно почти всё можно решить клавиатурными командами. Окна то известны и они не меняются. Всякие там TAB,  SHIFT+TAB,  ALT, стрелки, энтеры и прочие эскейпы.
« Last Edit: January 13, 2017, 01:20:21 PM by Vint »


m.igel

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Кнопки и адресные строки
« Reply #2 on: January 13, 2017, 01:58:03 PM »
Не умеет.
Но в твоей конкретной задаче можно после ввода имени просто нажать ENTER
Code: (clickermann) [Select]
KEYPRESS(#ENTER)
И обычно почти всё можно решить клавиатурными командами. Окна то известны и они не меняются. Всякие там TAB,  SHIFT+TAB,  ALT, стрелки, энтеры и прочие эскейпы.


Так не интересно  ;)
Я неспроста хотел папку назначения поменять. А так-то да, можно и табами подогнать. Пять табов и все дела  ;D

Может есть ещё более правильные команды?

i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
Re: Кнопки и адресные строки
« Reply #3 on: January 13, 2017, 02:52:41 PM »
в CM два варианта найти окно (в понимании ОС) - по имени (части) или по координатам
так что элемент-кнопку "Со&хранить" найти можно. а вот поле имени файла уже не выходит.

нет поиска окна по имени класса. может попросим Джонни расширить функционал WNDFND?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Кнопки и адресные строки
« Reply #4 on: January 13, 2017, 03:05:31 PM »
Расширить бы хорошо было, но и проблемы в 5 табах не вижу. Три коротких строки, а лучше одна подпрограмма с параметром на скрипт.


m.igel

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Кнопки и адресные строки
« Reply #5 on: January 13, 2017, 04:04:35 PM »
в CM два варианта найти окно (в понимании ОС) - по имени (части) или по координатам
так что элемент-кнопку "Со&хранить" найти можно. а вот поле имени файла уже не выходит.

нет поиска окна по имени класса. может попросим Джонни расширить функционал WNDFND?


Причем координаты абсолютные. Vint в соседней теме показал решение, когда берем свойства окна, прибавляем к координатам сколько надо и кликаем куда следует. Можно и табами, но уж как-то это коряво, неспортивно. Объекты есть, информация есть, а мы на пальцах объясняем.

Это как езда по карте и по легенде. Да, легенду сделать проще: направо, налево, возле старого дуба опять налево..." но завтра дуб срубят или не там свернул и всё, даже назад не проедешь по этой легенде. Да, пока это микроскрипт уровня "Hello world!", можно и табами по легенде. Но в целом мне это напоминает гипотетическую ситуацию, когда курьера отправляете не по адресу, а по легенде. По дюжине адресов. В городе миллионнике. Как думаете, он вернется?  ;)

Так что я за расширение функционала.

Quote
элемент-кнопку "Со&хранить" найти можно.


Чота не выходит. "Родительское" окно нашел, а кнопку никак...
« Last Edit: January 13, 2017, 04:39:07 PM by m.igel »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Кнопки и адресные строки
« Reply #6 on: January 13, 2017, 04:38:12 PM »
Здесь все за расширение функционала.

но завтра дуб срубят
А если завтра улицу переименуют вместе с городом? (привет декоммунизация в отдельно стоящей стране  :D)

Кликер он как бы... более приземлённый и ближе к человеку. Там где ботов общающихся запросами спалить легче простого, здесь мы действуем приближённо к человеку. Да это дольше. Дольше переключить табами или лень найти по картинке/цвету.

А функционал пусть расширяется, только мало получить хэндл окна и его класс, нужны ещё функции умеющие с ними работать. Тут или получать координаты и размеры не только по hwnd, а и по хэндлу классу или получать по ним сам hwnd? что вроде не всегда можно.
Или слать им сообщение напрямую по этим данным, тоже нужна функция.
А в курсе, что на разных версиях винды одни и те же элементы могут быть разного класса? Оп, нужна функция получающая версию винды и функция получающая битность... Короче, много их.

Если бы у тебя был не академический интерес, а конкретная задача, засимбиозили бы и попробовали получить твои элементы не кликером.


i0

  • Оплот сообщества
  • ****
  • Posts: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • View Profile
Re: Кнопки и адресные строки
« Reply #7 on: January 13, 2017, 04:41:59 PM »
применительно к собственным целям я б запросил
поиск у окна с известным HWND дочернего окна по имени/классу (может ещё какие признаки, добавьте)
WNDFND в его теперешнем виде – частный случай поиска дочернего Рабочему столу окошка по имени

P.S. угу, у меня точно конкретная. надо костыль будет написать
« Last Edit: January 13, 2017, 04:43:52 PM by i0 »

m.igel

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Кнопки и адресные строки
« Reply #8 on: January 13, 2017, 04:59:01 PM »
Здесь все за расширение функционала.

но завтра дуб срубят
А если завтра улицу переименуют вместе с городом? (привет декоммунизация в отдельно стоящей стране  :D)

Кликер он как бы... более приземлённый и ближе к человеку. Там где ботов общающихся запросами спалить легче простого, здесь мы действуем приближённо к человеку. Да это дольше. Дольше переключить табами или лень найти по картинке/цвету.

А функционал пусть расширяется, только мало получить хэндл окна и его класс, нужны ещё функции умеющие с ними работать. Тут или получать координаты и размеры не только по hwnd, а и по хэндлу классу или получать по ним сам hwnd? что вроде не всегда можно.
Или слать им сообщение напрямую по этим данным, тоже нужна функция.
А в курсе, что на разных версиях винды одни и те же элементы могут быть разного класса? Оп, нужна функция получающая версию винды и функция получающая битность... Короче, много их.

Если бы у тебя был не академический интерес, а конкретная задача, засимбиозили бы и попробовали получить твои элементы не кликером.


Да, везде есть плюсы и минусы.
Аналогия с легендой, как и любая аналогия, не описывает всё.

Что касается "спалить", то это не мой случай, поэтому я и не рассматриваю такие аспекты. Подозреваю, чтобы всем угодить надо искать окно по классу, определять координаты и кликать по ним мышой. Пробема с версией винды решается "тыканием" в окно, т.е. мышкой выбираем окно и говорим, что с ним делать. Так работает MouseRobot. Тоже не идеальный вариант, но эта его фишка хороша.

С помощью кликера я делаю костыли для работы с 1С и cs-cart. Понимаю, что это неправильно, по-взрослому надо изучать сами эти системы, но некогда. Заказывать обработки и доработки нет смысла, т.к. объемы малы. Перелопачивать вручную можно, но муторно. Тут-то и выручает кликер.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Кнопки и адресные строки
« Reply #9 on: January 13, 2017, 06:07:04 PM »
С помощью кликера я делаю костыли для работы с 1С и cs-cart. Понимаю, что это неправильно, по-взрослому надо изучать сами эти системы, но некогда. Заказывать обработки и доработки нет смысла, т.к. объемы малы. Перелопачивать вручную можно, но муторно. Тут-то и выручает кликер.
Прям коллега. Только у меня CRM другие. И да, заказывать дорого и нецелеобразно, а учить... завтра CRM сменится и что, новую учить. Да и в моей функционала такого нет.
Поэтому кликер и + в последнее время python.


И вопрос, а нафига тебе привязка?


Что касается "спалить", то это не мой случай
Это я уже ориентируюсь на 95% посетитилей и писателей ВК  :D
« Last Edit: January 13, 2017, 06:11:21 PM by Vint »


m.igel

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Кнопки и адресные строки
« Reply #10 on: January 14, 2017, 10:14:23 PM »
И вопрос, а нафига тебе привязка?

Привязка к кнопкам и полям?
А как без них? Не, можно обойтись тыкая по координатам, но это неправильно на мой взгляд. Вот как сделать тот же Ctrl+S на странице сайта? Да, мне это прям сейчас не нужно, но всё же...

С другой стороны в 1С полная Ж с кнопками. Они все называются одинаково, объединены в блоки, в результате тот же маусробот вроде видит кнопку, но тыкает в совершенно другую, т.к. не может различить. Пробовал Automatic Mouse and Keyboard. У него поиск по картинке хорошо сделан, но тоже какая-то ерунда с раскладками. СМ мне кажется более замороченными, зато более гибким. Больше надо писать руками, зато и написать можно больше.
Опять же, поговорить есть с кем ;-)

------------------

Ищите и обрящете!

Ctrl+S
F4
...
Profit!

« Last Edit: January 14, 2017, 10:24:42 PM by m.igel »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Кнопки и адресные строки
« Reply #11 on: January 15, 2017, 08:05:48 AM »
Вот как сделать тот же Ctrl+S на странице сайта?

как обычно.
Окно браузера должно быть в фокусе.
Code: (clickermann) [Select]
WAIT(1)

KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS(#S)
KEYUP (#CTRL)

HALT

m.igel

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Кнопки и адресные строки
« Reply #12 on: January 16, 2017, 01:56:12 PM »
Вот как сделать тот же Ctrl+S на странице сайта?

как обычно.
Окно браузера должно быть в фокусе.


Я, конечно, человек темный, но не до такой степени  ;)
Просто выразился недостаточно четко. Как нажать Ctrl+S я знаю, вопрос был в том, что делать дальше, как задать папку, куда сохранить, как изменить название сохраняемого файла.
Впрочем, кое-что я нашел — задать папку можно по F4, а дальше, видимо, табами.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Кнопки и адресные строки
« Reply #13 on: January 16, 2017, 02:15:02 PM »
вопрос был в том, что делать дальше, как задать папку, куда сохранить, как изменить название сохраняемого файла.

Просто вставляем из буфера сформированный полный путь с папками и именем.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Кнопки и адресные строки
« Reply #14 on: January 16, 2017, 02:17:54 PM »
Просто выразился недостаточно четко. Как нажать Ctrl+S я знаю, вопрос был в том, что делать дальше, как задать папку, куда сохранить, как изменить название сохраняемого файла.
Вот как раз здесь ничего сложного.
Code: (clickermann) [Select]
WAITMS(300)
LCLICK(867,12)  // 14653306
WAITMS(300)

KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#S)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(300)

TOCLIP("C:\Documents and Settings\Имя\Рабочий стол\Новости.html")
WAITMS(80)

KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
WAITMS(50)
KEYUP (#CTRL)
WAITMS(100)

KEYPRESS(#ENTER)

HALT