Главная страница
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.48 MB
Время: 0.035 c
6-1084303062
SiDoff
2004-05-11 23:17
2004.07.04
RCPT TO:<...@...> NOTIFY=SUCCESS,FAILURE ORCPT=rfc822; ...@...


14-1087302836
Кулюкин Олег
2004-06-15 16:33
2004.07.04
Кто пользовался для переезда компаниями-перевозчиками?


1-1087755757
terra0
2004-06-20 22:22
2004.07.04
передача глобальной переменной в DLL


14-1087213952
Master
2004-06-14 15:52
2004.07.04
работа с dBase


1-1087301043
Gemini
2004-06-15 16:04
2004.07.04
Имееться ListView в котором надо сортировать числа.