Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];




Вниз

Буфер клавиатуры. 


Brand   (2001-12-13 23:25) [0]

Есть такая информация : Для того, чтобы можно было записать в буфер 15 элементов необходимо, чтобы был 16-ый элемент с кодом клавиши <Enter>. Этот элемент располагается перед указателем головы буфера.
В своей программе я показываю постоянно буфер клавиатуры. Видно как он заполняется как-раз до этой позиции с кодом <Enter> Дальнейший ввод блокируется. Казалось-бы, что этот <Enter> необходим для идентификации конца буфера, однако, прочитав пару символов, указатель хвоста сдвигается, а код с клавишей <Enter> остается на месте. Более того потом можно еще нажимать клавиши и это поле с <Enter> портится.
Так для чего нужно это поле с <Enter>???



MBo   (2001-12-14 09:29) [1]

>Для того, чтобы можно было записать в буфер 15 элементов необходимо
Enter тут ни при чем
в $41a и $41c содержатся адреса начала и конца буфера
(32 байта с $41e по $43d - коды нажатых-отпущенных клавиш)
буфер, насколько помню, кольцевой. При заполнении пищит.
при чтении буфера указатели сдвигаются, совпали - пусто.
если ты каким-то левым образом записал код Enter-а, не внеся его в очередь, то буфер о нем и не знает и считать его не сможешь.
(насколько я понимаю, хочешь эмулировать ввод команды с клавы)
для правильной работы, думаю, надо ввести код нажатия и отпускания Enter и сдвинуть указатель на 2 байта.




Brand   (2001-12-18 23:52) [2]

Ничего я эмулировать не хочу. Просто в институте училка попросила вывести буфер клавиатуры на экран, типа там должен быть Enter. И действительно там он есть при каждом запуске *.exe файла на том месте где я писал. Так вот училка мне и говорит, что все знают, что он там есть, но зачем, незнает никто. Может это просто совпадение, потому-что запускается экзешник клавишей Enter и при запуске проги он получается самый последний.
И еще, если запускаю прогу из компилятора то там совсем не Enter.



Someone   (2001-12-19 02:05) [3]

> И еще, если запускаю прогу из компилятора то там совсем не Enter.
Ну так компилятор же не нажимает на кнопки, а запускает программу другим способом.



MBo   (2001-12-19 09:52) [4]

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




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.018 c
6-66946           Surf                  2002-01-07 11:15  2002.03.21  
Читать всем кому интересно про ESockError и иже с ним.


3-66780           fidget                2002-02-19 18:56  2002.03.21  
скорость работы MySQL+ODBC+ADO


1-66837           dolmat                2002-03-06 12:22  2002.03.21  
печать подобно DOS


3-66723           volodya_              2002-02-20 11:43  2002.03.21  
Помогите с кодировкой


1-66903           Shoo                  2002-03-06 12:08  2002.03.21  
Обновление данных на форме