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;