WinIo直接向ps2键盘(或鼠标)缓冲区写数据的方法_我的编程空间_百度空间
winxpsp2下测试通过!

procedure SetKey(SCanCode: byte);
begin
   asm
//无论向0x60,还是0x64写东西前都要等状态寄存器OBF变0
@Loop1:
in al, $64
and al, 01b
jnz @Loop1
//向$64端口写命令
mov al, $D2//写键盘输出缓存命令
out $64, al

//无论向0x60,还是0x64写东西前都要等状态寄存器OBF变0
@Loop2:
in al, $64
and al, 01b
jnz @Loop2
//向$60端口写参数
mov al, SCanCode
out $60, al
   end;
end;

模拟非扩展键:
SetKey($1F);//make codes
Sleep(25);
SetKey($9F);//break code

模拟扩展键:
SetKey($E0);//因为这是一个扩展键
SetKey($4B);//make codes
Sleep(25);
SetKey($E0);//因为这是一个扩展键
SetKey($CB);//break code
模拟鼠标的类似。

不管什么游戏,SendInput不太可能被屏蔽!

不建议采用winio自身的SetPortVal函数,这样效率太慢,而是直接用汇编写端口,当载入winio驱动后就可以直接操作端口了。
载入驱动:InitializeWinIo
卸下驱动:ShutdownWinIo


郑重声明:资讯 【WinIo直接向ps2键盘(或鼠标)缓冲区写数据的方法_我的编程空间_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——