看到以前帖子上有说过一个用ASM锁键盘20端的程序:
begin
Asm //封锁20端口
IN AL,21H
OR AL,02H
OUT 21H,AL
end;
end;
键盘是锁死了。但再次打开20端时刚输入的键也跟着放出来了。我想应该是键值还存放在
缓冲区中没去掉。怎样清空它?
begin
Asm //封锁20端口
IN AL,21H
OR AL,02H
OUT 21H,AL
end;
end;
键盘是锁死了。但再次打开20端时刚输入的键也跟着放出来了。我想应该是键值还存放在
缓冲区中没去掉。怎样清空它?
in al,61h
mov ah,al
or al,?
out 61h,al
in al, 60h
mov scancode, al
mov al,ah
out 61,al
mov al,20h
out 20h,al
Var
Msg: TMsg;
Begin
While PeekMessage( Msg, 0, WM_KEYFIRST, WM_KEYLAST,
PM_REMOVE or PM_NOYIELD )
Do;
End;
非常感谢,开始入题了!只是我K不懂这个函数的Y文帮助。不知道它具体是做怎么用的。我试过可以把WINDOWS发给程序的键清掉,但比如开始键,ALT+TAB键它就没办法清了。如果能帮我解释一下这个函数的具体用处,或者能不能放到最前台去过滤每一个键呢??