我想写一个mouse的hook,在mouse离开当前exe时,仍然可以收到mouse move的消息,并且把当前mouse的x,y值显示出来,我看了一个别人的source,可是那在delphi6中编译不通过,我改完后运行,却没有达到我要的效果,请给我一个最简单代码的source……另:可以直接在exe中写hook,而不用另加一dll吧?

解决方案 »

  1.   

    可以给一个source吗?只要能完成我上面说的功能就可以了
      

  2.   

    http://www.csdn.net/Develop/Read_Article.asp?Id=8834
      

  3.   

    楼上给的文档,例子是keyboard而不是mouse
    大概的操作我是知道,问题就是在回调函数中访问lParam,强制转换为TMouseHookStruct,访问mouse的x, y坐标时访问不到,不知前面的CallNextHookEx写得对不对,还有result赋值对不对
      

  4.   

    用控件吧,很简单的,只不过要带个DLL:
    下载GpSysHook:http://www.torry.net/vcl/system/windows/gpsyshook.zip
    在TGpMouseHook的MouseMove事件中:
    procedure TForm1.GpMouseHook1MouseMove(Sender: TObject;
      sourceWindow: Cardinal; x, y: Integer);
    begin
      Caption := IntToStr(x) + ',' + IntToStr(y);
    end;
      

  5.   

    不是的,我不想用控件,我写这个mouse的hook,只是想熟悉一下怎么写mouse的hook,不是为了别的,我参照了别人的source和api帮助,可是就是写不出来