Конференция "WinAPI" » эмуляция нажатия клавиш в неактивном окне
 
  • KiberKot © (10.01.08 05:52) [0]
    тема уже была, но ее закрыли, так что спрошу еще раз
    ка эмулировать нажатие клавиши в неактивном окне зная его
    дескриптор (D3D Window)
    насколько я понял SendMessage  не поможет
    так же я нашел пример
    procedure EmulateKey(Wnd: HWND; VKey: Integer);
    asm
      push 0
      push edx
      push 0101H //WM_KEYUP
      push eax
      push 0
      push edx
      push 0100H //WM_KEYDOWN
      push eax
      call PostMessage
      call PostMessage
    end;

    // Пример использования:
    EmulateKey(Edit1.Handle, VK_RETURN);

    каторый так же никакого результата недал
    ассемблера к сожалению незнаю
  • Cj © (10.01.08 06:18) [1]

    > D3D Window

    это Direct 3D? если да, то никак, DirectX использует свои средства засекания клавиш, через свой(помоему) драйвер. Мне в таком случае помогала keybd_event
  • Cj © (10.01.08 06:28) [2]

    > keybd_event

    для активного конечно окна
  • KiberKot © (10.01.08 20:13) [3]
    D3D Window - игра RF Online
  • wispa © (13.06.08 16:42) [4]
    уменя твой верхний пример работает просто беда в том что он нажимает и отпускает(просто мгновенно,кстате почемуто два раза нажимает) и зажатие клавиши несмог реализовать(в асемблере тож нуль)
  • CAMOPKAH (13.08.08 23:33) [5]
    В данном случае задержками :

     push 0
     push edx
     push 0101H //WM_KEYUP
     push eax
     push 500 //Задержка в ms
     push 0
     push edx
     push 0100H //WM_KEYDOWN
     push eax
     call PostMessage
     call Sleep
     call PostMessage
  • CAMOPKAH (13.08.08 23:33) [6]
    В данном случае задержками :

     push 0
     push edx
     push 0101H //WM_KEYUP
     push eax
     push 500 //Задержка в ms
     push 0
     push edx
     push 0100H //WM_KEYDOWN
     push eax
     call PostMessage
     call Sleep
     call PostMessage
  • CAMOPKAH (13.08.08 23:34) [7]
    В данном случае задержками :

     push 0
     push edx
     push 0101H //WM_KEYUP
     push eax
     push 500 //Задержка в ms
     push 0
     push edx
     push 0100H //WM_KEYDOWN
     push eax
     call PostMessage
     call Sleep
     call PostMessage
  • МистерТ (14.08.08 12:58) [8]
    > KiberKot ©   (10.01.08 20:13) [3]
    > D3D Window - игра RF Online

    вероятнее всего там использован DirectInput, а это значит ни какими PostMessage/SendMessage и ассемблером клавишу не нажать. Только писать собственную оболочку над DI.
    И вообще, во всех играх банят за ботописание :)
 
Конференция "WinAPI" » эмуляция нажатия клавиш в неактивном окне
Есть новые Нет новых   [134435   +33][b:0][p:0]