AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Kommandierung eines laufenden Programms - wie am besten?

Kommandierung eines laufenden Programms - wie am besten?

Ein Thema von Bodenseematze · begonnen am 9. Jul 2024 · letzter Beitrag vom 12. Jul 2024
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#1

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 9. Jul 2024, 14:37
Ein großer Vorteil eines REST-Servers ist, dass er viele Möglichkeiten abdeckt. Aktuell würde es dir vielleicht auf dem gleichen PC reichen. Sicher, dass das immer so bleibt?

Außerdem könntest du damit sehr einfach eine Webseite drum herumbauen, die dann über die REST-Schnittstelle mit deinem Server spricht.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 9. Jul 2024, 15:13
Theoretisch ginge auch SendMessage oder sogar einfach eine Datei, in die man die Befehle schreibt und die das Programm dann liest.
Ach ja: Kommunikation via Memory Mapped File ginge auch.

SendMessage und Memory Mapped File funktioniert nur lokal auf demselben Rechner.

Was auch immer man nimmt: Es ist mehr Aufwand als man zunächst denkt.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
150 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 9. Jul 2024, 19:57
Ich habe es noch nicht ausprobiert, aber ist App-Tethering nicht dafür geeignet?

https://docwiki.embarcadero.com/RADS..._App-Tethering

Es gibt Beispielprojekte je nach Delphi-Version (ab XE6):
C:\Users\Public\Documents\Embarcadero\Studio\22.0\ Samples\Object Pascal\RTL\Tethering

Oder ganz klassisch per DDE (Dynamic Data Exchange), was genau für solche Fälle gedacht war. Ist schon etwas älter, sollte aber immer noch unter Windows funktionieren. In Delphi suchen nach TDdeClientConv bzw. TDdeServerConv
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 9. Jul 2024, 21:46
Indy-Http-Server aufmachen, auf Http-Gets, Posts usw. reagieren und die entsprechenden Daten einlesen oder zurückgeben. Architektur- und Platform-Unabhängig, funktioniert über Rechnergrenzen hinweg und ist auch für das menschliche Auge super-leicht debugg-bar. Ich bin damit sehr glücklich geworden.

Gibt bestimmt mit "DataSnap" (?) und ähnlichen Dingen was noch weiter vorgekautes, aber die paar Minuten, Http und REST besser zu verstehen habe ich gerne investiert. War im Endeffekt deutlich einfacher als gedacht und funktioniert wirklich super.


Je nachdem was deine separate Anwendung für eine Aufgabe hat finde ich ganz ehrlich Konsolenanwendung mit Tastatureingaben nicht abwegig. Kann man drüber lächeln, aber ist aus einer Delphi-Anwendung heraus auch super steuerbar (CreateProcess und stdIn/stdOut-Pipes umbiegen, denn nichts anderes ist die Tastatureingabe und Bildschirmausgabe einer Konsolenanwendung) und schon kann man alles fernsteuern und auslesen und als netten Nebeneffekt kannst du deine Konsolenanwendung unter Windows einfach doppelklicken und die entsprechenden Befehle und Daten über die Tastatur ins Konsolenfenster eingeben während die Anwendung standalone läuft. Hat irgendwie auch einen gewissen Charme...
  Mit Zitat antworten Zitat
Bodenseematze

Registriert seit: 10. Jul 2023
69 Beiträge
 
#5

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 11. Jul 2024, 08:20
Ich habe es noch nicht ausprobiert, aber ist App-Tethering nicht dafür geeignet?
Davon hatte ich noch nie gehört - die verlinkten Klassen gibt's bei mir auf meinem System (D7) auf jeden Fall (noch) nicht

Oder ganz klassisch per DDE (Dynamic Data Exchange), was genau für solche Fälle gedacht war.
Ist schon etwas älter, sollte aber immer noch unter Windows funktionieren. In Delphi suchen nach TDdeClientConv bzw. TDdeServerConv
Gibt's das immer noch?
Dachte, das wurde komplett von OLE (und damit OCX-Server) ersetzt/erweitert und dann nur noch als Altlast im Windows "beibehalten"...
Ich denke, das ist ein totes Pferd, auf das ich nicht unbedingt setzen möchte
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.643 Beiträge
 
Delphi 12 Athens
 
#6

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 11. Jul 2024, 09:18
Davon hatte ich noch nie gehört - die verlinkten Klassen gibt's bei mir auf meinem System (D7) auf jeden Fall (noch) nicht
App-Tethering gibt es seit Delphi XE6. Obwohl es das also schon seit gut 10 Jahren gibt, ist es immer noch relativ unbekannt. Es hat allerdings den Charme, dass es nicht nur auf dem lokalen System, sondern auch innerhalb des lokalen Netzwerks und auch über Bluetooth arbeitet.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
150 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 11. Jul 2024, 10:02
Oder ganz klassisch per DDE (Dynamic Data Exchange), was genau für solche Fälle gedacht war.
Ist schon etwas älter, sollte aber immer noch unter Windows funktionieren. In Delphi suchen nach TDdeClientConv bzw. TDdeServerConv
Gibt's das immer noch?
Dachte, das wurde komplett von OLE (und damit OCX-Server) ersetzt/erweitert und dann nur noch als Altlast im Windows "beibehalten"...
Ich denke, das ist ein totes Pferd, auf das ich nicht unbedingt setzen möchte
Wieso, passt doch perfekt, wenn Du noch mit Delphi 7 entwickelst
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#8

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 11. Jul 2024, 10:31
Offiziell ist DDE tot, aber selbst Microsoft verwendet es immernoch an vielen Stellen.
Sogar die Delphi-IDE benutzt es.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Bodenseematze

Registriert seit: 10. Jul 2023
69 Beiträge
 
#9

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 12. Jul 2024, 08:09
Wieso, passt doch perfekt, wenn Du noch mit Delphi 7 entwickelst
Das habe ich verdient...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#10

AW: Kommandierung eines laufenden Programms - wie am besten?

  Alt 12. Jul 2024, 09:38
Wobei DDE nicht direkt was mit D7 zu tun hat.
Aber viele andere Neuereungen fallen da schon weg.

DDE ist, laut Hersteller, halt "eigentlich" tot, aber es lebt und lebt und lebt (sogar beim Hersteller selbst), so wie auch die BDE oder des MDI.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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