Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Очистка буфера клавиатуры   Найти похожие ветки 

 
SMT   (2004-05-21 10:03) [0]

Уважаемые господа,

Как средствами Windows API правильно очищать буфер клавиатуры?

Игорь Степанов


 
Cobalt ©   (2004-05-21 10:25) [1]

Боюсь, что в Виндах нет такого прикладного понятия как "буфер клавиатуры".
Или вы имеете в виду что-то иное? Что именно?
Чётче выражайте свои мысли.


 
SMT   (2004-05-21 18:23) [2]

Уважаемые господа,

Под понятием очистки буфера клавиатуры я понимаю функцию 0C H прерывания DOS 21 H. Есть ли аналог этой функции среди функций Windows API?

Заранее благодарю, Игорь Степанов


 
Cobalt ©   (2004-05-21 18:42) [3]

С лёгким сердцем говорю - нет такого (слава богу!)


 
LMD ©   (2004-05-21 21:35) [4]

PeekMessage (hWnd, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE) может сыграть роль "очистителя буфера клавиатуры"


 
Cobalt ©   (2004-05-22 01:16) [5]

>LMD ©   (21.05.04 21:35) [4]
Только для одного приложения. А в ДОСе буфер один на всех, так что для всех не сделаешь.
Тем более, насколько я понимаю - там нет такого буфера - события сразу же передаётся менеджеру окон, а оно посылает в очередь сообщений (а не буфер клавиатуры)


 
LMD ©   (2004-05-22 01:42) [6]

Cobalt ©   (22.05.04 01:16)


> А в ДОСе буфер один на всех, так что для всех не сделаешь


А в DOS"е вообще только одно приложение, о чем тут говорить ?


> Тем более, насколько я понимаю - там нет такого буфера -
> события сразу же передаётся менеджеру окон, а оно посылает
> в очередь сообщений (а не буфер клавиатуры)


Есть. Буфер находится в потоке "сырого" ввода (RIT - Raw Input Thread), куда складывает символы драйвер клавиатуры. Называется этот буфер System Hardware Input Queue. Затем эти символы в виде сообщений направляются в виртуализированную очередь ввода потока (ту самую, с которой работает функция GetKeyState), причем того потока, который в настоящий момент подсоединен к RIT.


 
sniknik ©   (2004-05-22 10:37) [7]

> А в DOS"е вообще только одно приложение, о чем тут говорить ?
там еще могут быть TSR программы (резиденты) которые работают с буфером. keyrus  к примеру.


 
LMD ©   (2004-05-22 15:12) [8]


> там еще могут быть TSR программы (резиденты) которые работают
> с буфером. keyrus  к примеру.


Эти резиденты перехватывают прерывание клавиатуры (keyrus, к примеру), поэтому в тот буфер, который "функция 0C H прерывания DOS 21 H." данные попадают уже после них.



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.032 c
14-1087369345
Saturn
2004-06-16 11:02
2004.07.04
Delphi 8


1-1087504411
Gear
2004-06-18 00:33
2004.07.04
Статическая линковка lib файлов


10-1016002202
comwad
2002-03-13 09:05
2004.07.04
Corba.


8-1082469860
pavia
2004-04-20 18:04
2004.07.04
плеер для филмов


14-1086330291
Романов Р.В.
2004-06-04 10:24
2004.07.04
Выбор HDD





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский