Einzelnen Beitrag anzeigen

gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

Pixel Bereich erkennen und klicken

  Alt 26. Nov 2013, 19:10
Hallo alle zusammen

Ich bin schon seit einiger Zeit an einem Programm drann, das ein Mausklick auf eine bestimmte stelle machen soll.


So sollte es ablaufen

1. Screenshot wird erstellt (image1)
2. Pixel Bereich (Image2) wird auf Image 1 gesucht
3. Wenn Pixel Bereich gefunden wurde, wird die Maus in die Mitte des Pixel Bereiches gesetzt
4. Ein Linksklick auf die Position wo der Cursor momentan ist

Punkt 1-3 funktioniert eigentlich gut: Mein Problem ist der Linksklick wird irgendwie nicht angenommen oder nur ca jedes 10. Mal!?
Weiss jemand an was das liegen könnte?

Merkwürdigerweise habe ich folgendes zum Klick noch herausgefunden:
- Wenn ich den Linksklick in meinem Programm mehrmals ausführen lasse(zb 2 oder 3x klicken, dann funktioniert es öfters (leider dann eben manchmal auch 2 oder 3 mal was zu Fehlern führt...)


Kann mir jemand sagen was ich falsch mache?


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  pt: Tpoint;
  p:TPoint;
  i: Integer;
begin
image2.visible:=false;

image1.Picture.Bitmap:= GetScreenShot;

    for i := 0 to Listbox1.items.Count - 1 do begin
    image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'\OBJEKTE\'+listbox1.items[i]);
    p:= FindBitmap(form1.Image1.Picture.Bitmap,Image2.Picture.Bitmap) ;

        if p.X=-1=false then begin
        pt := Mouse.CursorPos;
        if pt.X = form2.Left+ p.x =false then SetCursorPos(form2.Left+ p.x +(image2.Picture.width div 2) , p.y+ form2.Top+ (image2.Picture.Height div 2));

        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

        end;


    end;

 timer2.enabled:=true;

end;
Robert
  Mit Zitat antworten Zitat