通过33H中断控制鼠标的隐藏/显示/移动/点击。 -->这个容易
必须支持2K,XP操作系统,能支持W2003更好。 -->这些系统恐怕不会直接支持33H中断

解决方案 »

  1.   

    直接对端口操作procedure SetKey(Typ,SCanCode: byte);
    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足够了