Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и WinAPI

Войти
Регистрация
Восстановить пароль
 
lepus007
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 37
#1

Эмуляция нажатия кнопок - Delphi WinAPI

19.08.2017, 18:46. Просмотров 344. Ответов 3
Метки нет (Все метки)

Хочу сделать l2mult, это программа которая в свернутое окно шлет нажатие клавишь.
Тот кто сталкивался, или может хоть немного намекнуть в чем проблема. Очень надеюсь на вашу помощь. Потому что свои идеи просто закончились, гуглю уже 2й день. Залез в такие дебри! До написание своего драйвера клавиатуры.
И так! код ниже работает с приложениями (калькулятор, блокнот, lintage2 ) но не совсеми клиентами л2. Связано это наверно с защитой антибот SmartGuard.
Delphi
1
2
3
4
5
6
7
var
  H: HWND;
begin
  H := FindWindow('l2UnrealWWindowsViewportWindow', 'TheMega.ru');
  H := FindWindowEx(H, 0, 'l2UnrealWWindowsViewportWindow', nil);
  PostMessage(H, WM_KEYDOWN, 112, 0);
end;
За любую подсказку буду благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2017, 18:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Эмуляция нажатия кнопок (Delphi WinAPI):

Эмуляция нажатия клавиши без использования WinAPI - Delphi WinAPI
Есть приложение, эмуляция нажатия клавиш клавиатуры и мыши в которое блокируется на уровне WinAPI. Подскажите, как отправить в него...

Эмуляция кнопок мыши - Delphi
Я хочу эмулировать нажатие кнопок мыши. Например если я нажму левую кнопку мыши, программа должна это перехватить и сэмулировать нажатие...

Перехват нажатия кнопок - Delphi
Надо что бы при нажатии кнопки Windows, на клавиатуре, не появлялось меню Пуск'а... if (Key=VK_LWIN) or (Key=VK_RWIN) then Key:=0; ...

Калькулятор (перевод нажатия клавиш клавиатуры в нажатие кнопок) - Delphi
Здравствуйте. У меня тут проблема-не могу запрограммировать калькулятор, чтобы он эмулировал нажатие клавиш(+,-,*,/,Esc и Enter), как в...

Как написать автоустановочник путем перехвата и имитации нажатия кнопок - Delphi
Вот в частности хочу установить qip . Хотелось бы создать программу, которая бы сама установила, нажав определенные кнопки.

Перехват и эмуляция клавиш - Delphi
Здравствуйте, помогите написать программу которая будет перехватывать нажатие клавиш в другой программе и эмулировать нажатие других...

3
Shaft44
2 / 2 / 1
Регистрация: 11.11.2013
Сообщений: 18
19.08.2017, 22:51 #2
Не знаю что такое клиент л2, но если ты гуглишь второй день то видимо это игра. Если так то игры используют DirectInput который работает напрямую с драйвером клавиатуры и на сообщения ему пофиг. Пару лет назад писал автокастер умений для League of Legends но до исходника доберусь не раньше понедельника. Если это терпит то в понедельник скину пример, если не терпит то читай про DirectInput
0
lepus007
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 37
20.08.2017, 12:11  [ТС] #3
Клиент л2 это игра. LIneage II. попробую использовать directinput. Очень буду благодарен за исходник. Спасибо что ответили на мой вопрос!
0
Shaft44
2 / 2 / 1
Регистрация: 11.11.2013
Сообщений: 18
21.08.2017, 13:34 #4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const KEYEVENTF_SCANCODE:Cardinal=8;
 
procedure SendKey(key:Word; t:Integer);
var
  Inp:TInput;
begin
  Inp.Itype:=1;
  Inp.ki.wScan:=key;
  Inp.ki.dwFlags:=KEYEVENTF_SCANCODE;
  SendInput(2, Inp, SizeOf(Inp));
  Sleep(t);
  Inp.ki.dwFlags:=KEYEVENTF_KEYUP;
  SendInput(2, Inp, SizeOf(Inp));
end;
key:Word - клавиша
t:Integer - время в миллисекундах, сколько клавишу держать нажатой.

Клавиши(не все, тут только те что были нужны мне)
P.S. D0-D9 это цифры от 0 до 9 соответственно
Кликните здесь для просмотра всего текста

DirectInputKey.A:=30;
DirectInputKey.B:=48;
DirectInputKey.C:=46;
DirectInputKey.D:=32;
DirectInputKey.E:=18;
DirectInputKey.F:=33;
DirectInputKey.G:=34;
DirectInputKey.H:=35;
DirectInputKey.I:=23;
DirectInputKey.J:=36;
DirectInputKey.K:=37;
DirectInputKey.L:=38;
DirectInputKey.M:=50;
DirectInputKey.N:=49;
DirectInputKey.O:=24;
DirectInputKey.P:=25;
DirectInputKey.Q:=16;
DirectInputKey.R:=19;
DirectInputKey.S:=31;
DirectInputKey.T:=20;
DirectInputKey.U:=22;
DirectInputKey.V:=47;
DirectInputKey.W:=17;
DirectInputKey.X:=45;
DirectInputKey.Y:=21;
DirectInputKey.Z:=44;
DirectInputKey.D0:=11;
DirectInputKey.D1:=2;
DirectInputKey.D2:=3;
DirectInputKey.D3:=4;
DirectInputKey.D4:=5;
DirectInputKey.D5:=6;
DirectInputKey.D6:=7;
DirectInputKey.D7:=8;
DirectInputKey.D8:=9;
DirectInputKey.D9:=10;
1
21.08.2017, 13:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2017, 13:34
Привет! Вот еще темы с ответами:

Эмуляция нажатия кнопок вне активоного окна - C#
Как сделать чтобы при нажатии на F1 срабатывало действие, то есть эмуляция нажатия кнопок вне активоного окна

Имитация нажатия кнопок клавиатуры нажатиями кнопок в окне - C++ WinAPI
Скажите,как заменить нажатие кнопок клавиатуры на нажатие кнопок в окне?

Имитация нажатия кнопок клавиатуры нажатиями кнопок в окне - Pure Basic
Скажите,как заменить нажатие кнопок клавиатуры на нажатие кнопок в окне?

Эмуляция комбинации кнопок - Assembler
Здравствуйте уважаемые. Как сделать? программно нажатие комбинации клавиш, допустим ctrl-v. Про ф-цию DOS 5 int 16h знаю, тоесть поочерёдно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru