Skip to content

7 Февраль 2012

84

Правильный WM_KEYDOWN

WM_KEYDOWN

Итак, необходимо отправить сообщение нажатия клавиши (WM_KEYDOWN) окну. В сети много примеров по этому поводу, они все вроде как рабочие, но тема все-равно остается не раскрыта. Как же все-таки посылать сообщения, чтобы они были полностью валидны?

:!:  Код

Для начала, необходимо найти окно, в которое будут передаваться нажатия (события WM_KEYDOWN).  Например у нас есть код:

            HWND focusWindow = GetFocus();
            sendKey(focusWindow, character);

Функция sendKey должна выглядеть следующим образом:

    LPARAM lParam;
    int ScanCode = MapVirtualKey(character, 0);
    lParam = ScanCode << 16;
    lParam |= 1;
    PostMessage(focusWindow, WM_KEYDOWN, character, lParam);

    // WM_KEYUP send automatically

:!:  Немного пояснений

Для точного соответствия lParam с событиями клавиатуры, использовалась стандартная софтина Spy++, входящая в состав Visual Studio. Переменная character (тип short) — задана заранее и содержит код символа. WM_KEYUP, вопреки разным мнениям в сети, посылать не нужно, она посылается автоматически.

:!:  В заключение

Если вы пишите нечто схожее с виртуальной клавиатурой (фокус при этом будет на окне виртуальной клавиатуры, а события должны приходить в окно настоящего фокуса) — посмотрите в сторону этих WinAPI функций:

AttachThreadInput()
SetFocus()
Еще из рубрики C/C++, Разработка ПО
84 коммент.

Трекбэк / Пинг

  1. Sealcoat
  2. Migos Type Beat
  3. Soundtrack
  4. دوربین مدار بسته پویابین
  5. بهترین مارک دوربین مدار بسته
  6. Dosing Peristaltic Pump
  7. Survival Ebooks
  8. آموزش نصب دوربین های مدار بسته
  9. TV/Film Music
  10. Glow in the Dark Butt Plug
  11. #true
  12. adult stories
  13. Garden Bridges
  14. بهترین مارک دوربین مدار بسته
  15. آموزش نصب دوربین های مدار بسته
  16. فروش دوربین مداربسته
  17. نصب دوربین های مدار بسته
  18. فروش دوربین مداربسته
  19. Health benefits of masturbation
  20. anal plug
  21. cock ring review
  22. furniture corner protectors
  23. easy ways to make money
  24. http://www.magnetic.co.uk/Category/flexible-rubber-magnetic-dots
  25. http://www.indigo.co
  26. iron balusters
  27. دوربین مدار بسته پویابین
  28. نصب و اجرای دوربین مداربسته
  29. Aluminium Foil Tapes for the Construction Industry
  30. کمد
  31. #spiritualism
  32. games for pc download
  33. http://abc-actuaires.fr/index.php?option=com_k2&view=itemlist&task=user&id=294061
  34. full version pc games download
  35. edible arrangement
  36. apps download for pc
  37. coffee beans Hawaii best gourmet kona
  38. نصب و اجرای دوربین مداربسته
  39. free download for windows 8
  40. free download for windows pc
  41. free download for laptop
  42. فروش دوربین های مدار بسته مخفی
  43. دوربین مدار بسته پویابین
  44. free apps download for windows 10
  45. بهترین مارک دوربین مدار بسته
  46. آموزش نصب دوربین های مدار بسته
  47. pc games for windows 10
  48. pc games free download for windows 7
  49. download full version pc games
  50. Metal Chain For Bracelet
  51. Mu Cang Chai Vietnam
  52. Chanel shoes winter stock
  53. anti slip tape
  54. http://www.lanceengenharia.com.br/index.php?option=com_k2&view=itemlist&task=user&id=167934
  55. نصب و اجرای دوربین مداربسته
  56. فروش دوربین های مدار بسته مخفی
  57. دوربین مدار بسته پویابین
  58. بهترین مارک دوربین مدار بسته
  59. آموزش نصب دوربین های مدار بسته
  60. sapatenis osklen cano alto
  61. 동화세상에듀코
  62. Florida Resident Database
  63. fall fashion sale
  64. fall fashion sale
  65. fall fashion sale
  66. Home facial treatment machine
  67. Band
  68. בלוג תוכנות
  69. Andrew Wright Maine Attorney
  70. دوربین مدار بسته
  71. send mail smtp
  72. دوربین مدار بسته ارزان
  73. دوربین های مدار بسته
  74. earn money working from home
  75. دوربین مدار بسته ارزان
  76. strap on demo
  77. دوربین های مدار بسته
  78. best g-spot sex toy
  79. glass anal toys
  80. Buy Dildo
  81. shoe company
  82. auto lace
  83. 脱毛
  84. 脱毛

Обсуждение закрыто.