![]() |
Taste drücken durch Programm ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich möchte mir ein Programm basteln, welches mir etwas an Zeit einspart. Weiter unten erkläre ich, worum es im genauen geht. Ich brauche dazu nur ein Programm was entweder ständig mausklicken macht (mausposition wird nicht verändert) oder in sekundenabständen die taste "k" drückt. Damit will ich dieses DFÜ-Fenster steuern (siehe anhang). _____ Erklärung: Bei ISDN-XXL kann man sonntags kostenlos mit kanalbündelung surfen. Das Problem: die einwahlknoten sind überlastet. Das heisst: man muss mind. eine halbe stunde auf "aktivieren" klicken bis er die zweite verbidung aufbaut. Das programm soll automatisch solange auf aktivieren drücken bis die zweite verbindung aufgebaut ist oder solange "k" (aktivieren) drücken. Wenn man aktivieren drückt und er kann sich nicht einwählen springt der button nach 1 1/2 sekunden wieder auf "aktivieren" zurück. Wenns geklappt hat bleibt der button mit der aufschrift "deaktivieren" stehen in dieser dfü-verbindung. Glaubt ihr, das man das irgendwie realisieren kann? [edit=Admin]Bild aus Beitrag entfernt. Es befindet sich ja im Anhang. Mfg, Daniel[/edit] |
hallo
also ich denke mit einen Timer könnte man es versuchen du mußt aber erst den Button der fremd anwendung ansteuern Buttons fremder anwendungen drücken
Delphi-Quellcode:
//Zuerst ermittelt man das Fensterhandle mit folgender Anweisung:
FindWindow((Fensterklasse,wenn bekannt),Fenstertitel). //Anschließend holt man das Fenster mit SetForegroundWindow(Fensterhandle)nach vorn. //Dies ist jedoch nicht notwendig. {Nun kann man mit keybd_event eine Tastenkombination an das Fenster schicken. Wenn man mit FindWindowEx(ParentHandle, nil,nil,nil) rekursiv die entfernte Anwendung nach dem gewünschten Button durchsuchen lässt, kann man hinterher folgende Messages senden: } PostMessage(Handle.Kind,WM_LBUTTONDOWN,MK_LBUTTON,0); PostMessage(Handle.Kind,WM_LBUTTONUP,0,0); //Und schon wird der Button gedrückt. |
Moin Zusammen,
also wenn man erst einmal das Handle des Button hat, wäre es einfacher diesen mit
Delphi-Quellcode:
timergesteuert anzuklicken.
SendMessage(ButtonHandle,BM_CLICK,0,0);
Dann muss das Fenster nicht mal sichtbar sein. |
So, jetzt mal mit dem Spiegel über die Schulter nach hinten gezielt mit dem Revolver:
Delphi-Quellcode:
Den Fenstertitel und den Buttontext könnte man als parameter übergeben, dann wird es etwas universeller.
procedure ClickIt;
var hWnd : Cardinal; hBtn : Cardinal; begin hWnd := FindWindow(nil, 'verbunden mit XXL arcor'); if hWnd = 0 then begin Messagebox(Handle, 'Fenster nicht gefunden', 'Fehler', MB_ICONSTOP); exit; end; hBtn := FindWindowEx(hWnd, 0, nil, 'Aktivieren'); if hBtn = 0 then begin Messagebox(Handle, 'Knöppgens nicht gefunden', 'Fehler', MB_ICONSTOP); exit; end; SendMessage(hBnt, BM_CKLICK, 0, 0); end; |
Moin Luckie,
die Caption des Button müsste allerdings A&ktivieren sein ;-) |
Das spielt, glaube ich, keine Rolle. Wie gesagt, nur mit dem Spiegel über die Schulter. Dann hat die Jungfrau auf der rotierenden Scheibe eben einen kleinen Kratzer abbekommen. :mrgreen:
Ist der Kringel denn auch dabei, wenn ich mit WM_GETTEXT die Caption hole? :roll: |
Moin Luckie,
sollte er auf jeden Fall. Einer der Gründe, warum ich, nach Möglichkeit, lieber die ID nehme als den Text. |
Die müßte man sich dann erst mit Spy++ suchen.
|
wow, wieviele antworten! :D
Hatte heute leider keine zeit mehr mich mit dem problem zu beschäftigen. Aber morgen oder übermorgen werd ich mir mal die einzelnen beispiele genauer ansehen. Es ist auf jeden fall wichtig das nicht der button gedrückt wird, sondern die taste. Denn wenn der button gedrückt wird und die verbdingung hergestellt wurde, trennt man ja die verbindung nach einem erneuten klick auf den button (weil die caption dann ja deaktivieren ist). Aber das sollte kein problem sein mit dem captionauslesen. Nagut, wie gesagt, morgen oder übermorgen mach ich mich an die arbeit. Dürfte ja dank euren super erklärungen nicht sehr schwierig sein, auch für mich anfänger :D Vielen dank für die schnelle hilfe! Was wär ich bloss ohne euch und das delphi-praxis-forum! :dancer: :dancer: mfg Helmut |
wenn man den Button entsprechend der Caption sucht, sollte es ja kein Problem sein, ihn nur so lange zu drücken, wie nötig...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 Uhr. |
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-2025 by Thomas Breitkreuz