已知颜色A,在屏幕指定区域查找和A相同的颜色,并返回该点坐标的X,Y值.就象按键精灵里的区域找色一样的功能.我是初学者,最好有例子给我看看.先谢谢了.
我的目的是:用查找颜色,在游戏里选择怪物.

解决方案 »

  1.   

    有例子吗?
    下面的我试了下.RGB全部是255
    procedure TForm1.Button1Click(Sender: TObject);
    var
        point:Tpoint;
        MyhDC   :   HDC;
        scrx1,scry1,temp,rr,gg,bb:Integer;
    begin
        GetCursorPos(point);
        scrx1:=point.x;
        scry1:=point.y;
    //获取到那个点的屏幕坐标,然后
        temp   :=   GetPixel(MyhDC,scrx1,   scry1);
        rr   :=   GetRValue(temp);
        gg   :=   GetGValue(temp);
        bb   :=   GetBValue(temp);
        showmessage(inttostr(rr)+inttostr(gg)+inttostr(bb));
    end;
    end.
      

  2.   

    var
    pos: TPoint;
    Handle: HWND;
    ScreenDC: HDC;
    Buf: array[0..1024] of Char;
    ScreenColor: COLORREF;
    begin
    GetCursorPos(Pos); 
    Handle := WindowFromPoint(Pos); 
    edit1.Text := IntToStr(Handle);
    GetClassName(Handle, Buf, 1024); 
    edit2.Text := Buf;
    SendMessage(Handle, WM_GETTEXT, 33, Integer(@Buf));
    edit3.Text := Buf;ScreenDC := GetDC(0);
    ScreenColor := GetPixel(ScreenDC, Pos.X, Pos.Y);
    //Shape.Brush.Color := TColor(ScreenColor);
    edit1.Text := '红: ' + IntToStr(GetRValue(ScreenColor)) +
    '  绿: ' + IntToStr(GetGValue(ScreenColor)) + '  蓝: ' +
    IntToStr(GetBValue(ScreenColor));
    ReleaseDC(0, ScreenDC);
    edit2.Text := Format('Delphi中颜色值:$00%2.2x%2.2x%2.2x', [GetBValue(ScreenColor),
    GetGValue(ScreenColor), GetRValue(ScreenColor)]);
      

  3.   

    GetPixel的效率有问题。用scanline吧。
      

  4.   

    用scanline加个循环比较就出来了。还是选则连续的像素比较麻烦些
      

  5.   

    我想楼主是搞外挂吧,我现在想搞个后台,不是针对Z轴的前后后台,而是指在屏幕指定区域外的后台,如从-1000,0到0,1024的范围内找图,不知哪位高人可以指点一二.
    LZ我给你发个在当前屏幕指定区域查找图吧,不过这在屏幕外就不能用了,
    1 VB里引用 那个QMDispatch.dll 
    2 在系统中用regsvr32命令注册 DLL 
    那个HELPER.DLL和WinIo.dll放在同一个地方,否则注册不了成功 
    Private Declare Function FindPic Lib "QMDispatch" () As Long 
    dim a as long 
    Public QMDispatchObj As Object
    在FORM中引用
    Set QMDispatchObj = CreateObject("QMDispatch.QMFunction") 
    pos=QMDispatchObj.FindPic (0, 0, 1280, 1024, "E:/工.bmp", 0.9 )
    msgbox  int(pos/8192)'X左边 
    msgbox  pos MOD 8192 'Y左边 
      

  6.   

    csdn 和 大富翁都是这点不好..  几年不结贴都可以..
      

  7.   

    求助将诺基亚2610手机通讯录转移至SIM卡的详细步骤,我的手机屏幕坏了,无法看到自己的操作,求哪位用2610的给出详细步骤,感激不尽