Сейчас на форуме: zds, tyns777, JustLife, 2nd, morgot, Rio, CDK123 (+4 невидимых)

 eXeL@B —› Программирование —› Какой АПИ функцией можно эмулировать нажатие на клавиши клавиатуры?
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 января 2009 21:10
· Личное сообщение · #1

САБЖ

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 10 января 2009 21:18
· Личное сообщение · #2

SendMessage

-----
Программист SkyNet





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 января 2009 21:27
· Личное сообщение · #3

FrenFolio
Устанавливаю удалённый хук на клаву. В KeyboardProc имею lParam и wParam, вызываю SendMessage так
Code:
  1. push eax                                                                 ; хэндл активного окна
  2. invoke SendMessage,eax,WM_KEYDOWN,wParam,lParam
  3. invoke Sleep,0
  4. pop eax
  5. invoke SendMessage,eax,WM_KEYUP,wParam,lParam

По идее, нажатие на клавишу должно дублироваться, т.к. CallNextHookEx я тоже вызываю дальше, но нифига, да и если другие lParam и wParam подставить, то результат тот же. Я что-то не так делаю?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 147.7 (ветеран), 50thx
Активность: 0.120
Статус: Участник
sv_cheats 1

Создано: 10 января 2009 21:30 · Поправил: SER[G]ANT
· Личное сообщение · #4

А зачем там sleep ? он все равно равен 0




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 января 2009 21:39 · Поправил: ARCHANGEL
· Личное сообщение · #5

SER[G]ANT
Я так понимаю - соглашение вызовов - делфовский fastcall? Т.е. edx=VKey, eax=hWin?

Да и нихрена он не работает, кстати.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 10 января 2009 21:41
· Личное сообщение · #6

мало кода показал , что то подозрительное ты пишешь )))

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 147.7 (ветеран), 50thx
Активность: 0.120
Статус: Участник
sv_cheats 1

Создано: 10 января 2009 21:42 · Поправил: SER[G]ANT
· Личное сообщение · #7

2 ARCHANGEL
да
ток то сообщение я потер, ибо для делфи

up
На делфи он у мну прекрасно работал. На асме подобного не делал, ибо не нужно.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 января 2009 21:44
· Личное сообщение · #8

mak
Ничего подозрительного ))), просто нужно, чтоб одна кнопка на клаве выполняла функционал другой, т.к. эта другая, сцуко, сломалась ((( Допустим, надо, чтоб вместо пробела я жал какую-нибудь другую кнопку, а получал расстояния между символами.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 января 2009 21:46 · Поправил: ARCHANGEL
· Личное сообщение · #9

SER[G]ANT
Хм, ну, может и работал, просто в моей библиотеке не пашет, т.к. она туда как источник хука грузится, может, в этом всё дело?

Только что попробовал keybd_event, она возвращает 1, но результат нулевой. (((

Added
Вот так пашет, но пробел почему-то два раза нажимается.
Code:
  1. invoke MapVirtualKey,20h,0
  2. invoke keybd_event,20h,eax,0,0


-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 12 января 2009 10:49
· Личное сообщение · #10

Реально разобрался, метод постом выше работает, просто в процедуре обработки я не учитывал, что клавиша нажимается и отпускается, поэтому и два раза пробел печатался. Короче, проблема решена, тему закрываю.

-----
Stuck to the plan, always think that we would stand up, never ran.



 eXeL@B —› Программирование —› Какой АПИ функцией можно эмулировать нажатие на клавиши клавиатуры?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати