Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » движения мыши и передача процессу

Ответить
Настройки темы
движения мыши и передача процессу

Аватара для yukuru

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Версия AutoIt: 3.3

Описание:
необходимо написать код,который будет
1. перехватывает движение мыши
2. меняет на свои значения
3. передает процессу "1.ехе"

Примечания:
проблема в том что MouseMove в этом процессе(1.ехе) не работает.

Перехват- определение движения мыши раньше других процессов. и не дать другим процессам ПОЛУЧИТЬ ИСТИННЫЕ координанты мыши.

проще гоовря- процес 1.ехе перехвтывает координаты мыши движется к ним и возвращает координаты 0,0 .(к примеру) для всех остальных .
а мне надо перехватить значение движения мыши ДО процесса 1.ехе изменить их и передать уже дальше измененные для процесса 1.ехе

КАким образом передавать- не знаю. ...
бытует мнение что не плохо бы изменить users32.dll от куда скорее всего 1.ехе и считывает координаты

возможно что процесс сам получает данные из users32.dll, может просто менять значение в этой длл-ки? и тогда перехватывать движение не надо а просто блокировка движения "настощей" мыши.

Отправлено: 00:29, 26-07-2011

 

Аватара для yukuru

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Хорошо может тогда ктонитьбуь расскажет о
mouse_event,
ClipCursor,
GetCursor,
GetCursorPos,
SetCaretPos,
SetCursorPos,
SetWindowsHookExA,
TrackMouseEvent

Отправлено: 02:48, 27-07-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


yukuru,
WinAPIEx.au3 (http://autoit-script.ru/index.php/topic,47.0.html):
_WinAPI_ClipCursor()
_WinAPI_GetCursor()
_WinAPI_SetCaretPos()
_WinAPI_TrackMouseEvent()


WinAPI.au3:
_WinAPI_SetWindowsHookEx()


GetCursorPos() http://msdn.microsoft.com/en-us/libr...90(VS.85).aspx
SetCursorPos() http://msdn.microsoft.com/en-us/libr...94(VS.85).aspx

Отправлено: 05:04, 27-07-2011 | #3


Аватара для yukuru

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Мад. прости меня конечно, но...

...я блин сначала вотЪ это перерыл, прежде чем о них начать спрашивать
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

мне всеже просто не понятно некоторые моменты работы.

надо заставить двигаться мышь. помоги

$return = DllCall("user32.dll", "int", "SetCursorPos","int","300","int","500") и MouseMove ( 300,500 ) не помогло.
мышь не двигается в запущеннном окне программы(хотя в остальых окнах -при отсутвиии этой программы двигается)

Отправлено: 14:46, 27-07-2011 | #4


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


yukuru,
Код: Выделить весь код
#include <StructureConstants.au3>

$iX = 100
$iY = 200
$aRet = DllCall('User32.dll', 'int', 'SetCursorPos', 'int', $iX, 'int', $iY)
ConsoleWrite(@error & @TAB & $aRet[0] & @CR)
Sleep(1000)

$t_Point = DllStructCreate($tagPOINT)
$Ret = DllCall('User32.dll', 'int', 'GetCursorPos', 'ptr', DllStructGetPtr($t_Point))
If (@error) Or (Not $Ret[0]) Then
    ConsoleWrite(@error & @TAB & $Ret[0] & @CR)
Else
    $i_X = DllStructGetData($t_Point, 'X')
    $i_Y = DllStructGetData($t_Point, 'Y')
    ConsoleWrite('X: ' & $i_X & @TAB & 'Y: ' & $i_Y & @CR)
EndIf
Но у меня большое подозрение, что родные функции MouseMove() и MouseGetPos() получают(передают) данные примерно также, то есть если Ваша игра блокирует каким-то образом движение мыши, то, ИМХО, это вряд ли поможет.

Отправлено: 16:25, 27-07-2011 | #5


Аватара для yukuru

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


вотЪ о чем я и говорю, как же ж не понятно.

в ЭТОМ куск кода мы НАЗНАЧАЕМ координаты мыши.
тоесть мышь "телепортируется" туда.

а нужно сделать чтобы мышь ДВИГАЛАСЬ.

Отправлено: 17:07, 27-07-2011 | #6


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Для этого нужно перехватывать вызовы системных функций. В AutoIt это сделать не получиться. Изучай C/C++...

Отправлено: 19:29, 27-07-2011 | #7


Аватара для yukuru

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


ясно, как как импортирвоть код на С в Autoit?

ксати а разве нельзя использовать чтото вроде SetWindowsHookExA для перехвата системных функций?

Отправлено: 19:46, 27-07-2011 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » движения мыши и передача процессу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Высокий приоритет заданному процессу 7human7 Скриптовые языки администрирования Windows 14 26-01-2012 16:34
[решено] Узнать путь к процессу notbanned AutoIt 5 29-06-2010 12:15
Debian/Ubuntu - эмулятор движения и кликов мыши SERZHant1992 Общий по Linux 0 28-06-2009 22:30
Вопрос по процессу system 12341234 Программное обеспечение Windows 15 11-12-2007 22:02
Как настроить скорость движения указателя мыши в ОС FreeDOS? Oleg_SK Общий по FreeBSD 3 04-05-2007 23:32




 
Переход