Author Topic: дублирование мыши  (Read 6341 times)

0 Members and 1 Guest are viewing this topic.

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
дублирование мыши
« on: February 22, 2021, 09:06:58 PM »
Здравствуйте! Меня интересует, есть ли возможность дублирования мыши с помощью clickermann во 2 окно или в другую win?
Есть нечто нужное: https://www.youtube.com/watch?v=_8-JjlYYMUo
Но мне трудно разобраться в данной программе, а учитывая, что кликер может узнавать положение курсора и сам его перемещать, я думаю это возможно.
Заранее спасибо!

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: дублирование мыши
« Reply #1 on: February 23, 2021, 04:52:37 AM »
Почти как в видео.
Code: (clickermann) [Select]
#define #MK_LBUTTON:     0x0001

#define #WM_MOUSEMOVE:   0x0200
#define #WM_LBUTTONDOWN: 0x0201
#define #WM_LBUTTONUP:   0x0202

$arr_hwnd[0] = HGET(INT($_xmax * 0.25), INT($_ymax * 0.5))
$arr_hwnd[1] = HGET(INT($_xmax * 0.75), INT($_ymax * 0.5))

WNDGETINFO($arr_hwnd[0], $left, $top, $width, $height)

SETTHREAD(TH_DUP_MOUSE, 1)
   
WHILE(#TRUE)
   IF(ISKEYDOWN(1) = 1)
      $K = 1
      WHILE(ISKEYDOWN(1) = 1)
          WAITMS(1)
      END_CYC
      $K = 2
      WHILE($K = 2)
         WAITMS(1) 
      END_CYC
   END_IF
END_CYC

THREAD(TH_DUP_MOUSE, 0)
   $x = $_xmouse - $left
   $y = $_ymouse - $top
   SWITCH($K)
   CASE(0)
      SENDMESSAGE($arr_hwnd[1], #WM_MOUSEMOVE,   #NULL,       $x + ($y * 65536))
   CASE(1)
      SENDMESSAGE($arr_hwnd[1], #WM_LBUTTONDOWN, #MK_LBUTTON, $x + ($y * 65536))
   CASE(2)
      SENDMESSAGE($arr_hwnd[1], #WM_LBUTTONUP,   #MK_LBUTTON, $x + ($y * 65536))
      $K = 0
   END_SWITCH
   WAITMS(5)
END_THREAD

Если бы я не видел кода из видео, то я бы сделал примерно так.
Code: (clickermann) [Select]
$arr_hwnd[0] = HGET(INT($_xmax * 0.25), INT($_ymax * 0.5))
$arr_hwnd[1] = HGET(INT($_xmax * 0.75), INT($_ymax * 0.5))

WNDGETINFO($arr_hwnd[0], $left, $top, $width, $height)

STRSEPARATE("0:0x0200:0x0000:1:0x0201:0x0001:0:0x0202:0x0001:1:0x0200:0x0000", ":", $arr_state)

WHILE(#TRUE)
   $i = $state * 6 + ISKEYDOWN(1) * 3
   $state = $arr_state[$i]
   SENDMESSAGE($arr_hwnd[1], $arr_state[$i + 1], $arr_state[$i + 2], ($_xmouse - $left) + (($_ymouse - $top) * 65536))
END_CYC
« Last Edit: February 25, 2021, 12:52:31 AM by Космич »
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #2 on: February 23, 2021, 10:05:09 AM »
"Почти как в видео."
Да, точно так же не понятно, как этим пользоваться :)
Надеюсь разберусь, спасибо большое!

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #3 on: February 23, 2021, 10:31:16 AM »
Пытался привязать окно, как тут: https://www.youtube.com/watch?v=opRvArLJKuI
даже если я привязываю его к блокноту - "цвет 0"
Я хочу привязать к Vmware (виртуальная машина), как вариант можно включить "единый режим" и тогда окна другой винды будут в основной машине.
Единственное к чему у меня нормально привязывается кликер - это рабочий стол и панель задач. В остальных окнах после alt + W цвет меняется на 0
В чём может быть проблема?

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: дублирование мыши
« Reply #4 on: February 23, 2021, 02:49:36 PM »
"Почти как в видео."
Да, точно так же не понятно, как этим пользоваться :)
Надеюсь разберусь, спасибо большое!

https://youtu.be/LWrEYuWNQwk

Я хочу привязать к Vmware (виртуальная машина)
вот тут я вообще фиг знает, не пользовался
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #5 on: February 23, 2021, 04:56:57 PM »
Попробовал скрипт. В паинте всё просто замечательно! Даже 2 паинта с разных win работают отлично. В видео сделал немного стрелочек и галочек. Вероятнее всего 3д приложения используют захват мыши?
https://youtu.be/XGDQF9CpI64
« Last Edit: February 23, 2021, 04:59:55 PM by Dimka4369 »

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #6 on: February 23, 2021, 05:28:54 PM »
К сожалению другие варианты тоже не помогли...
Я восхищён вашим кодом, может вы попробуете эту тему:
http://crapware.aidf.org/forum/index.php?topic=5500.0

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: дублирование мыши
« Reply #7 on: February 23, 2021, 06:06:39 PM »
С изучением особенностей в играх не ко мне, я только с кодом могу помочь)
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #8 on: February 23, 2021, 06:11:41 PM »
Дак вот мне и нужен код, у моих скриптов проблемы.
Суть: крутим камеру влево до определённой координаты, пусть будет 0 (желательно быстро), вправо до 1920, если в это время появится цвет 64503 зажать "1" на 1 сек и дальше крутить.
Вроде просто, но у меня возникают проблемы или я пишу код на 200+ строк

kiril

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: дублирование мужа
« Reply #9 on: February 23, 2021, 08:40:20 PM »
Вроде просто, но у меня возникают проблемы или я пишу код на 200+ строк
да хоть на +100500 строк, главное работоспособность, а не понты с размером кода.

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #10 on: February 24, 2021, 12:27:42 AM »
К сожалению производительность моего кода очень маленькая (если вообще есть результат), поэтому и пишу сюда :)
Может тогда попробовать повторять 5 клавиш клавиатуры? Если не сложно добавляются, то желательно 11. QWEASD и 84620 на доп. клавиатуре, знаю я программы с перемещением курсора при нажатии циферок, поставлю на 2 винды и должно быть нормально. Даже не представляю возможно или нет, но если возможно - лучше 2 окно вообще не видеть, в фоне как-нибудь...
« Last Edit: February 24, 2021, 12:32:58 AM by Dimka4369 »

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: дублирование мыши
« Reply #11 on: February 24, 2021, 11:19:42 AM »
Если игра защитой не прикрыта, попробуй поковырять ее память с помощью Cheat Engine.
Тебе нужно найти базовый адрес и смещение в котором расположен угол поворота камеры.


Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #12 on: February 24, 2021, 02:28:21 PM »
Вроде как "прикрыта". Файлы извлечь невозможно, мешающийся easy anticheat и я слышал за использование cheat engine дают бан. Можно конечно попробовать спрятать программу в виде чего-нибудь системного... Так то я использовал эту программу, но как реализовать "базовый адрес и смещение в котором расположен угол поворота камеры" понятия не имею. Как это можно вычислить?
« Last Edit: February 24, 2021, 02:43:30 PM by Dimka4369 »

Dimka4369

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: дублирование мыши
« Reply #13 on: February 24, 2021, 02:42:44 PM »
Мне хотя бы кнопки дублировать, мышь подождёт, никуда не исчезнет. Идеально дублировать в окно, которое не видно на экране. Но если это сложно, то не нужно.

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: дублирование мыши
« Reply #14 on: February 24, 2021, 05:15:19 PM »
В Настройки - Параметры отладчика : Использовать VEH отладчик (или отладчик в режиме ядра)
                    - Дополнительно : Процедуры обращения к региону памяти
                                                : Чтение/Запись Памяти Процесса

Выбрать процесс и найти 0, если с 0 не прокатит, то не известное значение (тип для 32х - 4 байт, float; для 64х - 4/8 байт, float/double).
Повернуть камеру влево или вправо, не изменяя угла наклона, сделать отсев изменившихся значений. Повторять до тех пор пока не останется не большое количество вариантов. В ручную не много изменить значение, если камера повернулась, значит нужный адрес найден.

Значение угла поворота лежит в диапазоне от 0 до +- X, где 0 это направление на одну из сторон света (север, юг, запад, восток) или прямо по курсу, а X - смещение от 0 вправо/влево (может принимать довольно большие значения, в одной игрушке при 360 градусном обзоре это значение равнялось -32000).