Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi SpeedButton (https://www.delphipraxis.net/196869-speedbutton.html)

HolgerX 28. Jun 2018 16:31

AW: SpeedButton
 
Hmm..

Besser statt mouse_event() das SendInput verwenden.
Dieses kann für Tastatur und Maus verwendet werden.

KodeZwerg 28. Jun 2018 16:37

AW: SpeedButton
 
Hab Deinen Hinweis mit rangepappt, nun sollte jeder Zufrieden sein, Danke für diese Information! @ HolgerX
Habs gerade mit D2009 nochmal getestet, es läuft mit Windows 10. Danke @ API

API 28. Jun 2018 16:49

AW: SpeedButton
 
mouse_event() gibt es momentan noch, wurde aber durch SendInput ersetzt. Das Beispiel würde ich nicht löschen, denn es funktioniert ja so noch.

itsme 29. Jun 2018 13:01

AW: SpeedButton
 
@KodeZwerg

Auch wenn ich eigentlich Schluss machen wollte, beschäftigt mich das Thema trotzdem weiter...
Werde deine Lösung sicherlich auch ausprobieren, hatte an sowas ähnliches auch schon gedacht

Ich wollte eigentlich per Sendmessage eine WM_LButtonDown Nachricht mal testen, bin aber noch nicht dazu gekommen

Bei allen Vorschlägen hier, insbesondere deinem letzten, sollte man nicht vergessen, es muss mit einem Fremdprogramm funktionieren.
Man kann natürlich in diesem Fremdprogramm per Hexeditor für entsprechenden SpeedButton Left, Top, Width, Height auslesen und bei LButtonDown angeben.
Keine Ahnung ob es funktionieren würde, zumindest kommen mir die ausgelesenen Werte für Left und Top ziemlich falsch vor, wenn ich mal die Dimensionen des TabSheet zu Grunde lege

Stochern im Nebel, oder probieren geht über studieren, mag trotzdem zum Erfolg führen, nur hängt mein ganzes Leben nicht an diesem Problem. :lol:
Es ist schön etwas nach viel Mühen gelöst zu haben, aber wenn nicht, dann suche ich mir trotzdem nicht gleich ein anderes Hobby.

KodeZwerg 29. Jun 2018 14:08

AW: SpeedButton
 
Diese drei funktionen solltest du vereinen, in meinem Beispiel kannst Du ja lesen wie ich Relative/Absolute x&y Werte behandel.
SetForegroundWindow() - damit das Fremdprogramm nach vorne holen, sonst klickst Du vielleicht an falscher Stelle
SetCursorPos() - damit die Maus auf Ziel-Koordinaten einstellen
SendInput() - damit einen klick simulieren

All das hat absolut nichts mit Fremdprogramm-Fernsteuern am Hut, das ist einfach nur ein nachahmen von Dingen die Du sonst alleine mit Maus- Bewegung und klicks machen würdest. Solange es Sinn und Zweck erfüllt, nur zu.

itsme 29. Jun 2018 14:22

AW: SpeedButton
 
Ok ich werde mich da demnächst mal daran machen und mich dazu äußern.

Momentan nervt leider ein Sohn...
Der ist ständig irgendwie mit "Project Euler" beschäftigt.
Wer da nicht kennt, kann gerne einen Link posten.

Ich bin da mit Mühe und Not bis 10 gekommen, geht eigentlich weniger um programmieren, ist mehr Mathematik

Der hat es in Mathe drauf und hofft bei mir auf Delphi, C und Asm
Letzteres hatte ich früher mal gemacht, ist schon lange her, nichts mehr vorhanden
Hobby und Arbeit lassen sich nicht unbedingt vereinbaren und nach "endlich" Rentner, fehlt auch die Lust früheres Wissen neu aufzuwärmen.

Wahrscheinlich werden mich nun ein paar Leute steinigen, aber trotzdem, ich finde Delphi schwer genug, da braucht's kein Euler und auch keine anderen Programmiersprachen.

itsme 1. Jul 2018 14:49

AW: SpeedButton
 
So es funktioniert jetzt, war aber trotzdem nicht so ganz einfach, da man mit unterschiedlichen Koordinaten arbeiten muss.
Da soll einer darauf kommen, aber man hat gelernt und das ist die Hauptsache...

Delphi-Quellcode:
SetCursorPos(nPMain.x, nPMain.y);
SendMessage(WindowFromPoint(nPMain), WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(nPBtn.x, nPBtn.y));
SendMessage(WindowFromPoint(nPMain), WM_LBUTTONUP, 0, MAKELPARAM(nPBtn.x, nPBtn.y));
Das Tool Winspy mit integriertem Code-Generator hat mir sehr geholfen. :thumb:

Als ich die Hoffnung schon aufgegeben hatte, dass sowas überhaupt funktionieren kann, habe ich auch mit dem Free Tool "Move Mouse" herumgespielt und gesehen: Es geht!

Wer da also nichts selber machen möchte und ggf. einen Automatismus haben möchte, sollte einfach mal danach googeln.
Ich selbst hatte es wohl von Computerbild heruntergeladen, ist also nicht schwer zu finden.

KodeZwerg 1. Jul 2018 15:38

AW: SpeedButton
 
Zitat:

Zitat von itsme (Beitrag 1406230)
Wer da also nichts selber machen möchte und ggf. einen Automatismus haben möchte, sollte einfach mal

diese fertige alternative auch in Betracht ziehen :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 Uhr.
Seite 3 von 3     123   

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