通过33H中断控制鼠标的隐藏/显示/移动/点击。 -->这个容易
必须支持2K,XP操作系统,能支持W2003更好。 -->这些系统恐怕不会直接支持33H中断
必须支持2K,XP操作系统,能支持W2003更好。 -->这些系统恐怕不会直接支持33H中断
解决方案 »
- 打印问题
- 如何从dll中返回错误
- delphi能在VS2005运行吗?
- RS485网络连线问题
- 为什么 DBGridEh1.Columns['amount'].Footer.ValueType := vtSum; 这句话在编译的时候报错:Incompatible type: 'Integer' and 'String'
- 请求事务处理语句.
- ??????????是BDE连接数据库问题吗,还是???? 放分 100
- 能在资源文件中加入MIDI文件并在程序运行时播放它吗?
- 在DBGrid中如何自己控制滚动条?
- 怎样实现目录权限的更改?
- 有谁知道怎么调用windows的字体设置窗口吗?
- 小问题,动态建窗体方面
begin
asm
//无论向0x60,还是0x64写东西前都要等状态寄存器OBF变0
@Loop1:
in al, $64
and al, 010b
jnz @Loop1
//向$64端口写命令
mov al, Typ//写键盘输出缓存命令 0xD2(写键盘缓冲区),0xD3(写鼠标缓冲区)
out $64, al //无论向0x60,还是0x64写东西前都要等状态寄存器OBF变0
@Loop2:
in al, $64
and al, 010b
jnz @Loop2
//向$60端口写参数
mov al, SCanCode
out $60, al
end;
end;调用方法如下:
if Typ = $D2 then // 键盘命令
begin
SetKey($D2,$3B);
Sleep(25);
SetKey($D2,$BB);
end; if Typ = $D3 then // 鼠标命令
begin
if (i and $FF00)=0 then //2键
begin
SetKey($D3,$09);//左键按下
SetKey($D3,$00);
SetKey($D3,$00);
sleep(30);
SetKey($D3,$08);//左键放开
SetKey($D3,$00);
SetKey($D3,$00);
end
else
begin //3键
SetKey($D3,$09);//左键按下
SetKey($D3,$00);
SetKey($D3,$00);
SetKey($D3,$00);
sleep(30);
SetKey($D3,$08);//左键放开
SetKey($D3,$00);
SetKey($D3,$00);
SetKey($D3,$00);
end;是否显示和端口中断之类的无关,这是系统功能,只能用API处理的
移动则用一般的API足够了