Что нового

Использование dllcall

xamd

AION bot developer
Сообщения
66
Репутация
24
Уважаемые знатоки! ;D

Пишу бота для ММОРПГ Aion. Всё вроде ничего, только столкнулся с некой проблемой: необходимо отправлять команды в неактивное окно, т.е. чтобы пользователь имел возможность лазить, где захочет, а окно игры было свёрнуто. Насколько я понимаю, оптимально будет использовать функцию dllcall. Очень бы хотелось получить развёрнутый ответ(ибо, чувствуется, функция полезная).

P.S. К слову говоря, существует 2 категории ботов: пакетные и не пакетные. Возможно ли считывать необходимую информацию из пакетов(и как это сделать), а отправлять данные через dllcall. Думаю, это был бы оптимальный вариант реализации.

P.P.S. Не могли бы Вы дать посмотреть линки, по которым написано, какой dll за что отвечает.

Весьма благодарен! :IL_AutoIt_1:
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
Не, передрать модуль для EVE и переписать его под aion - это немного не то, что я хочу. Я хочу, чтобы мне кто-нибудь объяснил, как работает эта функция, как посмотреть какая DLL за что отвечает...

P.S. Английский FAQ не предлогать - видел, образно понял, хочется по-человечески подойти к этой функции, а не просто передрать её.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
xamd [?]
хочется по-человечески подойти к этой функции
Тогда ищите документацию по той DLL, которую собираетесь использовать! Читайте и пользуйтесь! DllCall в основе своей несложная функция для понимания, единственный непонятный момент может быть в понимание структур. Но и это поправимо :smile:
Структура - это совокупность нескольких переменных под единым именем, рассматриваемых как одно целое. В отличие от массива, переменные в структуре могут иметь различные типы. Переменные внутри структуры называются её членами или полями. Структуры могут содержать данные любых мыслимых типов, в том числе массивы и другие структуры.
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
Насколько я понимаю, DLL для нажатия клавиш мыши и клавиатуры - это user32.dll
Скажу честно - гуглил минут 10, не нашел ничего даже издали похожего на документацию по DLL и уж подавно про его использование

По поводу структуры понял, спасибо :smile:
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
Зачем гуглить, если я дал ссылку, по которой все это обсуждалось?
Если лень читать то:
Код:
DllCall('user32.dll', 'int', 'SendMessage', 'hwnd', 'Хендл Окна', 'int', 0x0201, 'int', 1, 'dword', _WinAPI_MakeLong('Координата Х', 'Координата У'))
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
Не лень, читал.

1) второй параметр int что значит?
2) SendMessage - это метод передачи команды?
3) hwnd - это WinGetHandle, ясно, а что значит "Хендл Окна" дальше - титул окна?
4) Опять int? Зачем?
5) 0х0201 - Цвет Оо? Зачем?
6) 1? почему 1, а не 0 скажем?
7) dword - ?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
*click*

Это в той же теме, на которую дал ссылку r35p3ct.

:mad:
 

r35p3ct

Продвинутый
Сообщения
228
Репутация
60
1) Specifies additional message-specific information. Для клика это как понимаю не важно.
2) SendMessage Посылаем сообщение окну
3) Хендл окна. Получить можно через WinGetHandle()
4) Тип данных. ТАК НАДО для посылки клика.
5) WM_LBUTTONDOWN =0x0201; Жмем левой кнопкой
6) см. 1
7) см. 4
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
Это и просил. Спасибо!
 
Верх