请问一个关于WRITE_PORT_UCHAR的问题

chNeed1 2007-05-16 11:03:20
为什么我用该方法直接写端口
void WaitForKeyboardWrite(void)
{
int i;
UCHAR c;

for (i = 0; i < 1000; ++i)
{
KeStallExecutionProcessor((ULONG)50);
c = READ_PORT_UCHAR((PUCHAR)0x64);
if ((c & defOBUFFER_FULL) == defOBUFFER_FULL)
break;
}
}


void PressKeyByScan(int ScanCode)
{
WRITE_PORT_UCHAR((PUCHAR)0x64,(UCHAR)0xd2);

WaitForKeyboardWrite();

WRITE_PORT_UCHAR((PUCHAR)0x60, (UCHAR)ScanCode);

WaitForKeyboardWrite();

WRITE_PORT_UCHAR((PUCHAR)0x64,(UCHAR)0xd2);

WaitForKeyboardWrite();

WRITE_PORT_UCHAR((PUCHAR)0x60, (UCHAR)ScanCode | 0x80);

WaitForKeyboardWrite();
}

当我循环输出一个记录着要输出字符的扫描码时,在Notepad.txt文本文件输出完全正确,但在有些应用程序下不是输出少,就是输出顺序不对??
请问怎么解决?
...全文
692 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oushengfen 2007-10-24
  • 打赏
  • 举报
回复
不会,顶一下,同时也学习一下了.
nike 2007-10-24
  • 打赏
  • 举报
回复

你是通过这样的代码给键盘发送的命令,有没有给鼠标发送过 ?
liukai60268 2007-05-17
  • 打赏
  • 举报
回复
软件开发与技术交流群40271625
chNeed1 2007-05-16
  • 打赏
  • 举报
回复
谁能指教一下

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧