Maus klickt nicht.



  • Hallo zusammen,

    habe eine kleines Programm geschrieben, welches den Mauszeiger auf einen Button bewegt nach einem bestimmten Weg.
    Jetzt sollte eigentlich eine Klick erfolgen aber tut halt nicht. 😕

    Hier mal der Programmtext.

    Timer1->Enabled=true;
    
    }
    
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
     Timer1->Interval=50;
     POINT p;
     GetCursorPos(&p);
     xPos=p.x;
     yPos=p.y;
     Posx[i]=xPos;
     Posy[i]=yPos;
     i++;
     if(i==89)
     {
     i=0;
     Timer1->Enabled=false;
     Timer2->Enabled=true;
    
    }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Timer2Timer(TObject *Sender)
    {
    Timer2->Interval=50;
    
    SetCursorPos(Posx[i],Posy[i]);
    i=i+1;
    if(Posx[i]==780)
    {
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    }
    if(i==89)
    {
    i=0;
    Timer2->Enabled=false;
    Timer1->Enabled=true;
    }
    
    }
    
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    Close();        
    }
    

    An der Stelle Posx= 780 ist der Cursor über Button3 und das Fenster sollte sich schließen, durch den Klick, aber nix passiert.
    Wäre schön wenn ihr mir helfen könnt. 🙂

    Edit:
    Bitte die Code-Tags benutzen. Danke!
    Dito für die Vorschau und ggf. die Editier-Funktion.



  • bitte benutz die code-tags für deinen code [C/C++] unter dem 🙂 😃 😉

    // sowas z.b
    


  • Hi,

    befindet sich der Cursor wirklich genau über dem "X"?
    Zwischen Mausdown und Mausup evtl. mal ein Sleep(10); einfügen.

    Gruß
    ravel



  • Ja der Cursor befindet sich auf der Position.
    Lasse mir ca 5sec die Mauspositionen anzeigen und Speichern, und spiele dann alles ab.
    Aber wenn der Cursor auf Position x=780 steht, wird kein Klick simuliert.
    Auch mit der Sleep Funktion ändert sich nichts.

    Vielleicht hast du noch eine andere Idee?

    Greez
    Scalls



  • Alles klar, hab rausgefunden warum es nicht funzt.
    War zu kurz über Posx=780 um es abzuspeichern.
    Habe die if-Anweisung auf Posx>=780&&Posx<=820 gesetzt und jetzt geit es.

    Ciao


Log in to reply