Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mausklick (https://www.delphipraxis.net/33585-mausklick.html)

Bifi 9. Nov 2004 15:10


Mausklick
 
Hallo bin noch immer recht neu ich wollte mal fragen wie man ein programm macht das so ca 10 oder 100 mal in einer sekunde eine bestimmte taste drückt in meinem fall die linke maustaste habe also nun ne oberfläche mit nem start und stop knopf aber weiter weiss ich schon nicht mehr ;-( bitte helft mir
Danke

Gentleman 9. Nov 2004 21:04

Re: Mausklick
 
hi!

was genau hast du denn vor? ist es nicht eher hinderlich wenn so oft ein Mausklick durchgeführt wird?

das wiederhohlen kannst durch einen Timer realisieren. bei Timer1.Interval:= 1000; wird jede sekunde eine beliebige aktion ausgeführt. für den mausklick könntest du glaude ich den Befehl SendMessage verwenden. Allerdings kann ich dir auch nicht sagen wie genau du das anstellen kannst :oops: .
such doch mal in der DP unter Hier im Forum suchenSendMessage

Tubos 9. Nov 2004 21:09

Re: Mausklick
 
Die Lösung: MSDN-Library durchsuchenSendInput

Habe sowas mal in C++ gemacht:
Code:
#include <windows.h>
#include <winable.h>
INPUT runter,rauf, rechtsrunter, rechtsrauf; // mit runter und rauf ist die linke maustaste gemeint

void ldown(void); // linke maustaste runter
void lup(void); // linke maustaste rauf
void rdown(void); // rechte maustaste runter
void rup(void); // rechte maustaste rauf

void main(void)
{
...
...
...

// Beim Programmstart die Arrays mit Werten füllen:
   runter.mi.dx=0;
   runter.mi.dy=0;
   runter.mi.mouseData=0;
   runter.mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
   runter.mi.dwExtraInfo=0;
   runter.mi.time=0;
   rauf.mi.dx=0;
   rauf.mi.dy=0;
   rauf.mi.mouseData=0;
   rauf.mi.dwFlags=MOUSEEVENTF_LEFTUP;
   rauf.mi.dwExtraInfo=0;
   rauf.mi.time=0;
   rechtsrunter.mi.dx=0;
   rechtsrunter.mi.dy=0;
   rechtsrunter.mi.mouseData=0;
   rechtsrunter.mi.dwFlags=MOUSEEVENTF_RIGHTDOWN;
   rechtsrunter.mi.dwExtraInfo=0;
   rechtsrunter.mi.time=0;
   rechtsrauf.mi.dx=0;
   rechtsrauf.mi.dy=0;
   rechtsrauf.mi.mouseData=0;
   rechtsrauf.mi.dwFlags=MOUSEEVENTF_RIGHTUP;
   rechtsrauf.mi.dwExtraInfo=0;
   rechtsrauf.mi.time=0;

...
...
...
}


// Da die Arrays bereits gefüllt sind, brauchen wir nur noch funktionen die SendInput aufrufen:

void ldown(void) // maustaste runter

   SendInput(1,&runter,sizeof(runter));


void lup(void) // maustaste rauf

   SendInput(1,&rauf,sizeof(rauf));


void rdown(void) // rechte maustaste runter

   SendInput(1,&rechtsrauf,sizeof(rechtsrauf));


void rup(void) // rechte maustaste rauf

   SendInput(1,&rechtsrunter,sizeof(rechtsrunter));
}
mfg. Tubos

Bifi 10. Nov 2004 06:47

Re: Mausklick
 
Hi thx für die antworten ich glaube ich habs nun es sollte so gehen
// Linke Maustaste simulieren
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz