Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.08.2018, 10:15
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию Получить координаты внутри определённого окна

Приветствую.
Есть определённое окно.
Его размер и положение на экране может меняться (Юзер может его двигать по экрану, изменять размер и т.д.)
Мне надо проверять определённый фрагмент изображения и кликать в определённые точки.
Собственно вопрос:
Как привязать координаты к окну (внутри окна. Что б при перетягивании по экрану окна, координаты кликов внутри этого окна оставались на месте).
Тоесть, что б не зависимо куда юзер перетянет окно, клики попадали в нужные координаты.
Хочу спам гасить таким макаром.
Чтоб прога следила за окном, и если появился нагскрин, то чтоб кликер кликал по крестику и закрывал окно спама.

З.Ы. Способ с поиском элементов в окне не прокатит, т.к. там на flesh*е всё сделано.

Вообще что б с flesh*ом взаимодействовать, обязательно его декомпилировать? Ну или ещё что с ним делать...
Например в онлайн играх.
Можно ли убирать (делать Visible:=false), перемещать обьекты в флеше?

Последний раз редактировалось TEKTON, 07.08.2018 в 12:49.
Ответить с цитированием
  #2  
Старый 07.08.2018, 19:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Я так понимаю, что окно чужое.
Тогда, если ты знаешь координаты нужной точки внутри окна, то GetWindowRect даст тебе координаты самого окна. Ну а дальше простая арифметика для пересчета...
Ответить с цитированием
  #3  
Старый 07.08.2018, 21:28
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Я так понимаю, что окно чужое....
Ну а дальше простая арифметика для пересчета...
Да, окно чужое.
А арифметика не совсем простая.
Там есть Всякие моменты.
Борты обрамляющие окно, рабочая часть окна...
Когда окно развёрнуто на весь экран, то только с верху остаётся борт сменюшкой.
Боковые бортики при этом вообще пропадают. (Тогда конечно можно начинать отсчёт от X,Y всего монитора).
Но как определить в каком состоянии сейчас окно?
Как просчитать эти координаты внутри окна ?
Как получить точки отсчёта по X, Y ?

Думаю принцип должен быть таким:
FindWindow
GetWindowRect
Потом просчёт координат
потом эмуляция клика мышки
Правильно ?

З.Ы. Для примера хочу работать вот с этим плеером:

Перейдите по ссылке https://www.adobe.com/support/flashp...downloads.html
Найдите ссылку на загрузку Download the Flash Player projector

Последний раз редактировалось TEKTON, 08.08.2018 в 08:21.
Ответить с цитированием
  #4  
Старый 08.08.2018, 19:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, тогда еще тебе нужны будут функции:
IsIconic
GetSystemMetrics
GetWindowPlacement
GetWindowLong
Может еще что. Там надо читать и пробовать.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter