![]() |
zweites Delphi Programm mit anderem Delphi Programm steuern
Hallo, ich such ne Möglichkeit in einem zweiten Delphi Programm einen Button zu drücken, wo das Button.Click Ereignis über einen timer von einen anderen Delphi Programm kommt.
Kann mir da jemand einen Tipp geben, wie ich das mache: Vielen Dank |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Das lässt sich mit COM/ActiveX Automatisierung bewerkstelligen.
Ich befürchte nur dass du programmiertechnisch noch nicht soweit bist. Der Lernaufwand beträgt einige Wochen bis Monate. ![]() |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Oder mit
![]() |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
|
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Mir fällt da spontan eine Broadcast-Message ein, die in der WndProc der fernzusteuernden Anwendung ausgefiltert wird.
|
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Du hast doch den Quelltext und somit die volle Kontrolle über beide Anwendungen, oder? Im Endeffekt müssen deine zwei Prozesse nur miteinander kommunizieren. Und unter Windows gibt es mehr als ein halbes Dutzend verschiedene Möglichkeiten der "Inter-Prozess-Kommunikation".
Also anstatt dass dein Prozess B mühsam anfängt, im Prozess A zu wühlen, einen bestimmten Button in seinem Fenster zu suchen und den zu drücken, sollte es dem Prozess einfach sagen "He, dein Button soll gedrückt werden" und Prozess A drückt dann selber. |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Zitat:
Mein Hauptproblem ist eigentlich, dass ich in beiden Programmen etwas Timer-gesteuertes ablaufen lasse. Nur über einen langen Zeitraum (24h wobei jedes Ereignis ungefähr alle 60sec ausgeführt wird) laufen die beiden Timer dann irgendwann asynchron. Ich dachte zuerst ich starte das zweite Programm mit dem Timer vom ersten, oder habt Ihr da noch ne andere Idee, wie ich die synchronisiert bekomme, an die Windows Uhr koppeln oder sowas? Danke für eure Hilfe |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Wäre es denkbar, den Timer nur in einer der beiden Anwendungen zu verwenden und der anderen über eine Message mitzuteilen, dass das Timer-Ereignis eingetreten ist?
|
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Zitat:
|
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Gut, dann skizzier ich mal grob: Du brauchst eine selbst definierte Message, die beiden Anwendungen bekannt ist (RegisterWindowMessage kann da hilfreich sein). Der Empfänger braucht dann noch einen Handler für diese Message. Tritt nun im Sender das Timer-Ereignis ein, schickt er eben die Message an den Empfänger (dessen Fensterhandle muss im Sender bekannt sein), welcher darauf reagiert oder eben auch nicht.
[edit] Einen ersten Ansatz für den Austausch der Fensterhandles kannst Du hier finden: ![]() |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Hallo, ich hab das jetzt so gelöst, dass immer nochmal die rechnerzeit abgefragt wird vor jedem neuen intervall
Delphi-Quellcode:
Ich werd dann morgen sehen ob funktioniert hat
for i:=1 to 10 do begin
aktuell:=now + 60/24/3600; if now = aktuell do begin ... Vielen Dank für eure Mühe |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
ein wenig offtopic:
Mir stellt sich die ganze Zet die Frage - warum das alles in zwei Programme aufteilen? Wo diese beiden Programm anscheinend stark voneinander abhängen. Grüße Klaus |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Zitat:
Man braucht nur den Code etwas umstellen und sieht den Widerspruch:
Delphi-Quellcode:
for i:=1 to 10 do begin
aktuell := now + 60/24/3600; if aktuell = now { <= Ausdruck ist immer False} then ... |
AW: zweites Delphi Programm mit anderem Delphi Programm steuern
Zitat:
Delphi-Quellcode:
hat aber funktioniert so
for i:=1 to 10 do begin
aktuell := now + 60/24/3600; if now = aktuell then ... @ Klaus01 das es offtopic geworden ist tut mir leid, ich wollte es zuerst anders machen und hab das Thema deswegen so gewählt. Das ich zwei Programme miteinander kommunizieren lasse ist für mich aber zu Anspruchsvoll und zeitraubend. So funktioniert es auch. Kann ja vielleicht jemand das Thema umbenennen, damit es nicht verwirrt. Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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 by Thomas Breitkreuz