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

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

Ответить
Настройки темы
controlsend в играх

Аватара для morgan1991

Старожил


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

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


Здравствуйте!
Скажите пожалуйста как можно в играх отлавливать поля ввода, кнопки и т.д. и т.п.
Допустим известная всем игра World of Warcraft
Захожу в неё с Au3info и отлавливаю поле ввода, в итоге получаю следующее:

Код: Выделить весь код
>>>> Window <<<<
Title:	World of Warcraft
Class:	GxWindowClassD3d
Position:	-32000, -32000
Size:	160, 30
Style:	0xB6080000
ExStyle:	0x00040008
Handle:	0x005B048C

>>>> Control <<<<
Class:	
Instance:	
ClassnameNN:	
Advanced (Class):	
ID:	
Text:	
Position:	
Size:	
ControlClick Coords:	
Style:	
ExStyle:	
Handle:	0x000100C8

>>>> Mouse <<<<
Position:	32536, 32610
Cursor ID:	15
Color:	0xF4F4F4

>>>> StatusBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<
Но такой код не работает:

Код: Выделить весь код
ControlSend("World of Warcraft", "", "GxWindowClassD3d", "kjhgkjh")
Помогите плиз как мне быть?
Или хотябы как сделать так чтобы можно было отловить с помощью hotkeyset и тут же выслать нажатие этой клавиши используя макрос @HotKeyPressed, но чтобы hotkeyset не вызвался повторно после нажатия этой клавиши.

-------
Хочу научиться писать драйвера на с++


Отправлено: 12:38, 09-03-2009

 

Аватара для morgan1991

Старожил


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

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


самое лучшее сделать через процесс, но я не могу... **(((

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:15, 09-03-2009 | #21



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

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


Аватара для .:TimoXa:.

Пользователь


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

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


А как на счет следить за появление процеса example.exe ? а при его появление отследить отправление клавиши Enter(при условии не нажатия на кнопку в окне)

Отправлено: 23:24, 09-03-2009 | #22


Аватара для morgan1991

Старожил


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

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


.:TimoXa:., я же сказал что думал над этим... А если пользователь нажмёт не ентер а мышкой???

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:34, 09-03-2009 | #23


Аватара для .:TimoXa:.

Пользователь


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

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


morgan1991, а что мешает отследить сетевую активность приложения! Стоит ему (приложению) установить соединение,которое и будет означать нажатие кнопки "вход" /Enter и после этого и начать выполнение скрипта...надо щас подумать как реализовать...
...
While 1
$ConnectedSocket = TCPAccept( $MainSocket)
If $ConnectedSocket >= 0 Then
msgbox(0,"","Client Connected")
Call("function")
exit
EndIf
Wend
Func Function()
msgbox(0,"","You are loginIn")
EndFunc

$MainSocket в данном случае будет портом который открывает программа для обмена пакетами с сервером

Последний раз редактировалось .:TimoXa:., 09-03-2009 в 23:52. Причина: поясняю


Отправлено: 23:46, 09-03-2009 | #24


Аватара для Creat0R

Must AutoIt


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

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


Цитата morgan1991:
если пользователь нажмёт не ентер а мышкой? »
Я как раз для таких случаев сделал расширенную функцию _IsPressedEx():

Код: Выделить весь код
If _IsPressedEx("01|{Enter}") Then...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 01:39, 10-03-2009 | #25


Аватара для proxy

Старожил


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

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


.:TimoXa:., а если игра шлет данные не в явном виде....?
тут же нужно определить какой логин/ пароль зашел в игру...

Цитата:
а при его появление отследить отправление клавиши Enter(при условии не нажатия на кнопку в окне)
так...а в целом - заачем нужно - т.е. сам процесс...к примеру можно сделатьь так:
написать обычную прогу - которая будет харнить логин и пароль пользователей
и эта же прога будет запускать игру и вводить логин и пароль...- так уже будет известно
какой аккаунт вошел в игру....

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 02:18, 10-03-2009 | #26


Аватара для .:TimoXa:.

Пользователь


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

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


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

Отправлено: 07:13, 10-03-2009 | #27


Аватара для morgan1991

Старожил


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

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


Цитата Creat0R:
Я как раз для таких случаев сделал расширенную функцию _IsPressedEx(): »
А вдруг пользователь пока вводит пароль просто так нажмёт n раз мышкой?
Цитата proxy:
и эта же прога будет запускать игру и вводить логин и пароль. »
Не нужно обязательно чтобы пользователь ввёл логин и пароль.

-------
Хочу научиться писать драйвера на с++


Отправлено: 08:32, 10-03-2009 | #28


Аватара для morgan1991

Старожил


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

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


Сделал так:
Код: Выделить весь код
Global $MainSocket = 8085
While 1
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket >= 0 Then
msgbox(0,"","Client Connected")
Call("function")
exit
EndIf
Wend
Func Function()
msgbox(0,"","You are loginIn")
EndFunc
Но не работает ( проверял на других программах, на ventrilo тоже не работает. Это был бы хороший вариант... Если бы работал, помогите в чём ошибка?

-------
Хочу научиться писать драйвера на с++


Отправлено: 12:35, 10-03-2009 | #29


Аватара для proxy

Старожил


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

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


Цитата .:TimoXa:.:
после чего в логе ищем »
а wow пишет лог? - это мысель..

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 14:09, 10-03-2009 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] ControlSend работает не на всех компьютерах. mymindspam AutoIt 5 03-12-2009 00:31
Проблема в играх not4bitches Непонятные проблемы с Железом 17 20-11-2009 22:53
Зависания в играх IIpocTo Непонятные проблемы с Железом 4 12-05-2008 10:56
Артефакты в играх Zody Видеокарты 17 10-04-2008 10:35
проблема в играх sadamchik Видеокарты 17 03-02-2007 10:11




 
Переход