Проблема с эмуляцией нажатия клавиш

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Markus_13, 1 Nov 2009.

  1. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    Нужно эмулировать нажатия клавиш в игре, но никак не получается :confused:
    пробовал keybd_event и PostMessage (посылка сообщений окну WM_KEYDOWN)
    кто подскажет как реализовать - можно как-нибудь эмулировать на уровне драйвера? :rolleyes:
    З.Ы. вместе с игрой стартует GameGuard (драйвер) - есть подозрение что он может мешает :) но без него игра не запускается...
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    Может шлешь неправильно?
    (c) d_x
     
    _________________________
  3. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    текущий код:
    раньше было с keybd_event
    Code:
    procedure KeyD(key:byte;lp:integer=0);begin PostMessage(a,$0100,key,lp);end;
    procedure KeyU(key:byte;lp:integer=0);begin PostMessage(a,$0101,key,lp);end;
    ...
    lpCtrl1:=MapVirtualKey(17,0) shl 16 or 1 ;
    lpV1:=MapVirtualKey(ord('V'),0) shl 16 or 1 ;
    lpV2:=1 shl 31 or 1 shl 30 or MapVirtualKey(ord('V'),0) shl 16 or 1 ;
    lpCtrl2:=1 shl 31 or 1 shl 30 or MapVirtualKey(17,0) shl 16 or 1 ;
    ...
    keyD(17,lpCtrl1);
    keyD(17,lpV1);
    keyU(17,lpV2);
    keyU(17,lpCtrl2);
    ...
    
     
  4. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    ну, неужели никто не подскажет что не так?((
     
  5. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    gisTy, если конструктивного ничего сказать не можешь \ не хочешь - лучше молчи =)

    Проблема кстати попрежнему не решена, приоритет уже не тот - но всеже интересно в чем там дело :confused:
    З.Ы. это не ла2 - это Aion ;)
     
  6. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
  7. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    2 DeaD_MoroZ
    почитал.
    Угу, скопипастил код (причем неразобравшись в нем) и пытаешься мне помочь - лучше бы себе помог))
    хотя конечн желание помочь очень похвально :D
    в твоем (или чужом) коде юзается keybd_event (юнит sendkeys), а как ты можешь прочитать выше, я уже пробовал этот вариант
    З.З.Ы. а насчет "как сделать что бы полностью заблокировать функцию кнопки" - легко, если ты понимешь код, а конкретно нужно добавить строку
    Code:
    if wparam=vk_home then exit else
    перед строкой
    Code:
    Result:=CallNextHookEx(HookHandle, code, WParam, LParam);
    после этого нажатие хоума обрабатываться не будет, а будут только слаться твои клавиши "GHBDTN"
    З.З.З.Ы. код вообще лажовый - много мусора и абсолютно бесполезного кода, а уж res-файл в 260кб и dfm в 500 с лишним (причем все это из-за иконки)) - это вообще айс ;)
     
    #7 Markus_13, 19 Dec 2009
    Last edited: 19 Dec 2009
Loading...