Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   zweites Delphi Programm mit anderem Delphi Programm steuern (https://www.delphipraxis.net/176526-zweites-delphi-programm-mit-anderem-delphi-programm-steuern.html)

jupiter4065139 12. Sep 2013 07:39

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

sx2008 12. Sep 2013 07:48

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.

http://www.delphi-treff.de/tutorials...ernet/activex/

baumina 12. Sep 2013 07:58

AW: zweites Delphi Programm mit anderem Delphi Programm steuern
 
Oder mit WinSpy

Back2Code 12. Sep 2013 08:05

AW: zweites Delphi Programm mit anderem Delphi Programm steuern
 
http://www.delphipraxis.net/161456-f...ml#post1227885

Schau dir das mal an.:-D

peterlepan 12. Sep 2013 08:10

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.

Der schöne Günther 12. Sep 2013 08:27

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.

jupiter4065139 12. Sep 2013 08:36

AW: zweites Delphi Programm mit anderem Delphi Programm steuern
 
Zitat:

Zitat von sx2008 (Beitrag 1228069)
Ich befürchte nur dass du programmiertechnisch noch nicht soweit bist.

das ist wirklich das Problem, ich hab nicht viel Ahnung und auch nicht viel Zeit mich darein zuarbeiten.
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

DeddyH 12. Sep 2013 08:49

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?

jupiter4065139 12. Sep 2013 08:55

AW: zweites Delphi Programm mit anderem Delphi Programm steuern
 
Zitat:

Zitat von DeddyH (Beitrag 1228092)
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?

so dacht ich mir das, wenn das Timer-Ereignis bei der ersten Anwendung eintritt soll bei der zweiten Anwendung ein Button.Click Ereignis ausgelöst werden

DeddyH 12. Sep 2013 08:59

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: http://forum.delphi-treff.de/index.p...893#post435893 [/edit]

jupiter4065139 12. Sep 2013 13:08

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:
for i:=1 to 10 do begin
  aktuell:=now + 60/24/3600;
  if now = aktuell do begin
...
Ich werd dann morgen sehen ob funktioniert hat

Vielen Dank für eure Mühe

Klaus01 12. Sep 2013 13:29

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

sx2008 12. Sep 2013 13:33

AW: zweites Delphi Programm mit anderem Delphi Programm steuern
 
Zitat:

Zitat von jupiter4065139 (Beitrag 1228159)
Ich werd dann morgen sehen ob funktioniert hat

Das kann nicht funktionieren.
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 ...

jupiter4065139 13. Sep 2013 10:30

AW: zweites Delphi Programm mit anderem Delphi Programm steuern
 
Zitat:

Zitat von sx2008 (Beitrag 1228164)
Zitat:

Zitat von jupiter4065139 (Beitrag 1228159)
Ich werd dann morgen sehen ob funktioniert hat

Das kann nicht funktionieren.
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 ...

is richtig, sollte auch so heissen;

Delphi-Quellcode:
for i:=1 to 10 do begin
  aktuell :=  now + 60/24/3600;
  if now = aktuell then ...
hat aber funktioniert so

@ 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 11:56 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