Author Topic: Привязка к окну, проблемы  (Read 4416 times)

0 Members and 4 Guests are viewing this topic.

PasqualeAcosta

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Привязка к окну, проблемы
« on: November 02, 2018, 12:12:32 PM »
День добрый! Перечитал массу тем про проблемы с привязыванием окон. И только еще больше запутался.
В общем игра три в ряд, отдельный клиент, без каких либо геймгуардов и защит. Оконный режим. Винда 10.
Все цвета в лупе отображаются корректно, мышка кликает во время, цвета считываются. НО мышка кликает туда где находится курсор в данный момент, а не по координатам. Как такое исправить?
Судя по темам которые находил, есть ряд команд которые не работают при привязке, но не нашел нигде общий список того что "Нельзя".
В общем как обходят такие проблемы с наведением?
« Last Edit: November 02, 2018, 05:17:58 PM by PasqualeAcosta »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Привязка к окну, проблемы
« Reply #1 on: November 02, 2018, 10:02:05 PM »
А предварительное наведение курсора MOVE (x, y)  пробовал?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Привязка к окну, проблемы
« Reply #2 on: November 02, 2018, 10:15:05 PM »
 :-\ А MOVE  не работает при привязке? Я даже и не знал  :(.

Ну и ладно, вот этот MOVE  должен сработать http://crapware.aidf.org/forum/index.php?topic=2111.0

Либо просто:
postmessage($_hwnd,0x0200,0,$x+($y*65536)) //$x и $y - координаты.

PasqualeAcosta

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Привязка к окну, проблемы
« Reply #3 on: November 02, 2018, 11:58:21 PM »
А способа попроще реально нету)? Судя по описанию функций все гораздо проще должно было быть.
Я не против и так сделать, но реально именно так необходимо?
Как понимаю "0x0200" означает клик левой кнопки? Справку прочитал, но не особо понял эту команду. почему первый координат "0", а второй "$x+($y*65536)". Можно чуть подробнее.
« Last Edit: November 03, 2018, 12:03:27 AM by PasqualeAcosta »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Привязка к окну, проблемы
« Reply #4 on: November 03, 2018, 12:33:47 AM »
SENDMESSAGE / POSTMESSAGE (hwnd, message, wParam, lParam)

Параметры:
hwnd - HWND окна
message - сообщение окну
wParam, lParam - параметры сообщения



hwnd - с этим вроде понятно. Тем более, что если окно привязано, то служебная переменная $_hwnd дает текущий hwnd привязки.

message  - берем код сообщения на сайте макрасофта. Сообщения для мышки -  https://docs.microsoft.com/ru-ru/windows/desktop/inputdev/mouse-input-notifications.
Нам нужен WM_MOUSEMOVE - https://docs.microsoft.com/ru-ru/windows/desktop/inputdev/wm-mousemove. Сообщение 0x0200. 0x0200 - это число в шеснадцатеричном виде. Можно его написать в десятичном 512 , разницы нет.

Там же на сайте смотрим параметры wParam, lParam для WM_MOUSEMOVE.
wParam - это всякие доп кнопки при передвижении курсора, нам не нужно это, пишем 0.
lParam - два байта с координатами перемещения курсора. Младший байт - координата Х, старший байт - координата У. Эти две координаты представляются одним числом. Поэтому в этом параметре математическое выражение $x+($y*65536)


PasqualeAcosta

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Привязка к окну, проблемы
« Reply #5 on: November 03, 2018, 12:41:17 AM »
В вашем случае проявляется необходимость наводить курсор перед кликом, что исключает использование режима привязки.

Если кликер не может быть кликером, зачем тогда вообще привязки)? У меня сейчас жена в диабло 3 на виртуалке ботит)) Хороший вариант конечно, но думал все как то проще реализуется.

PasqualeAcosta

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Привязка к окну, проблемы
« Reply #6 on: November 03, 2018, 12:47:53 AM »
Хорошо, спасибо. Буду оба варианта тестировать. Как минимум ради общего развития)

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Привязка к окну, проблемы
« Reply #7 on: November 03, 2018, 12:50:22 AM »
но даже если удастся наводить курсор в оконном режиме, то проблема пользования компом без свободного доступа к управлению мышью останется
Да не, не будет проблем  :D. С чего ты взял? Что будет мешать?



Я кстати вспомнил. В игре Арчейдж когдато делал посадку и уборку уражая с привзкой, и там тоже клики не проходили без наведения курсора. Так я тогда  прицепил move через реалистичное передвижение с POSTMESSAGE . Работало стабильно, и не мешало основной работе на пк.
« Last Edit: November 03, 2018, 12:54:53 AM by dramster »

PasqualeAcosta

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Привязка к окну, проблемы
« Reply #8 on: November 03, 2018, 12:56:30 AM »
Да не, не будет проблем  :D.
Что бы создать клик мне нужно будет через альтернативу прописать как наведение мышкой А_Move, а потом еще через альтернативу продублировать координаты в сам клик мышкой A_lclick ?
Просто не понимаю зачем прописывать передвижение если в самом щелчке так же указываются координаты действия?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Привязка к окну, проблемы
« Reply #9 on: November 03, 2018, 01:01:57 AM »
В том то и дело, что перед кликом тебе нужно сначала переместить курсор, а потом уже клик.
К примеру вот твой старый скрипт, выглядит так:
Code: (clickermann) [Select]
LCLICK(247,322) 
wait(1)
LCLICK(1245,620) 
wait(1)
LCLICK(1153,171) 
wait(1)
LCLICK(368,432) 
wait(1)

Нужно изменить его на вот такой:
Code: (clickermann) [Select]
//A_MOVE
SUB(A_MOVE, $A_x, $A_y, $A_hwnd)
   postmessage($A_hwnd,0x0200,0,$A_x+($A_y*65536))
END_SUB

A_MOVE(247,322, $_hwnd)
LCLICK(247,322) 
wait(1)
A_MOVE(1245,620, $_hwnd)
LCLICK(1245,620) 
wait(1)
A_MOVE(1153,171, $_hwnd)
LCLICK(1153,171) 
wait(1)
A_MOVE(368,432, $_hwnd)
LCLICK(368,432) 
wait(1)

Если клики у тебя работаю в привязке как LCLICK, то и нет нужды переписывать их на A_lclick.

PasqualeAcosta

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Привязка к окну, проблемы
« Reply #10 on: November 03, 2018, 01:05:33 AM »
Спасибо. Кстати тоже в арчейдж поигрывал когда то еще с ЗБТ на корее))

PasqualeAcosta

  • Освоившийся
  • **
  • Posts: 25
    • View Profile
Re: Привязка к окну, проблемы
« Reply #11 on: November 03, 2018, 01:29:53 AM »
В том то и дело, что перед кликом тебе нужно сначала переместить курсор, а потом уже клик.

Прописал, не получается. Координаты нормально определяются, привязка правильная, в логе так же все корректно отображается. Но по факту клик все равно происходит там где в данный момент находится курсор и он не сдвигается...
Пробовал и клики мыши прописать через postmessage как у вас в теме.
Тоже 0 реакции. В чем еще может быть проблема?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Привязка к окну, проблемы
« Reply #12 on: November 03, 2018, 10:45:50 PM »
 :-\ Ну... значит не судьба.