Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Befehle von einem Programm an ein anderes senden (https://www.delphipraxis.net/102769-befehle-von-einem-programm-ein-anderes-senden.html)

Aike 4. Nov 2007 13:01


Befehle von einem Programm an ein anderes senden
 
Hallöchen :-)

Ich habe mir ein "Chat-Programm" geschrieben, mit dem man nicht nur einfache Nachrichten sondern quasi auch Befehle ausführen kann, zum Beispiel kann der Client den Server um die Winamp-Playlisten anfragen und diese dann starten.

Jetzt hatte ich mir überlegt, dass es lustig wäre, wenn ich vom Client aus auch eines meiner Programme auf dem Server benutzen könnte, also eine Remote-Control.

Kann ich irgendwie Befehle vom Chat-Programm an ein anderes (FastCast; beide von mir) schicken? Ich schreibe das mal als "wysiwyg":

Zitat:

Client:
Sende "command_start_Befehl" //realisiert

Server:
Empfängt "command_start_Befehl" //realisiert
Sendet an zweites Programm "start_Befehl"

Zweites Programm:
Führt "Befehl" aus

Nuclear-Ping 4. Nov 2007 14:41

Re: Befehle von einem Programm an ein anderes senden
 
Kommt drauf an, was das für ein Programm sein soll. Manche Programme (wie z.B. WinAmp) bringen eine API mit, mit der sich das Programm direkt fernsteuern lässt (Bei Google suchenWinamp API). Bei anderen Programmen musst du vielleicht per Windows API mit FindWindow, FindWindowEx, SendMessage usw. arbeiten.

dominikkv 4. Nov 2007 14:46

Re: Befehle von einem Programm an ein anderes senden
 
du kannst ja die Befehle an die Konsole weitergeben.

Deep-Sea 5. Nov 2007 08:36

Re: Befehle von einem Programm an ein anderes senden
 
Dein Chat nutzt doch sicherlich schon TCP/IP, oder? Also was spricht dagegen, dies auch hier für zu verwenden? :wink:

Aike 6. Nov 2007 11:06

Re: Befehle von einem Programm an ein anderes senden
 
Hallöchen,

öh, wie mir die Konsole dabei helfen soll, in einem anderen Programm Befehle auszuführen, kann ich jetzt nicht so einfach ableiten.

Ja, ich nutze TCP/IP, aber was hat das mit dem Drittprogramm zu tun, das ich ansteuern will? o.O

SendMessage ... müsste ich mir mal anschauen, gute Idee. Danke erstmal dafür :-)


Greetings!

Deep-Sea 6. Nov 2007 11:44

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von Aike
Ja, ich nutze TCP/IP, aber was hat das mit dem Drittprogramm zu tun, das ich ansteuern will? o.O

TCP/IP wäre auch eine Möglichkeit ;) Der Vorteil ist, das die Programme nicht auf dem gleichen PC laufen müssen ... und da du eh schon TCP/IP verwendest, hast du ja schon Erfahrung damit ...
Wie bekannt, arbeiten viele Datenbanken auch so (MySQL, IB, Firebird, etc...)

Aike 6. Nov 2007 12:16

Re: Befehle von einem Programm an ein anderes senden
 
Meine Erfahrung mit TCP in Delphi beläuft sich darauf, dass ich eine IP und einen Port angebe, über den sich die Indy-Komponenten verbinden ;-)

Deep-Sea 6. Nov 2007 12:21

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von Aike
Meine Erfahrung mit TCP in Delphi beläuft sich darauf, dass ich eine IP und einen Port angebe, über den sich die Indy-Komponenten verbinden ;-)

Und Daten versenden tust du nicht? :P

Aike 6. Nov 2007 12:36

Re: Befehle von einem Programm an ein anderes senden
 
Nur Chat-Befehle mit Writeln() und Readln()

Deep-Sea 6. Nov 2007 12:44

Re: Befehle von einem Programm an ein anderes senden
 
Und was unterscheidet diesen "Befehl" von einen an ein Programm was z.B. das Licht einschalten soll? :wink:
Naja es gibt viele Möglichkeiten. Such dir dir beste aus :-D Viel Glück (und Spaß ^^)

dominikkv 6. Nov 2007 13:09

Re: Befehle von einem Programm an ein anderes senden
 
so wie ich das sehe hat er nicht das problem den befehl un seinen clienten zu schicken, sondern den dort dann auszuführen.
und mit der konsole meine ich zB dass du damit jeden beliebigen befehl eingeben kannst wie zB programme ausführen/dateien öffnen, pc runterfahren oder so.
und mit dem link den ich dir oben gegeben hab kannst du auch noch gleich die konsole auslesen und dann zB das ergebnis an den server zurückschicken :zwinker:

Deep-Sea 6. Nov 2007 13:25

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von dominikkv
so wie ich das sehe hat er nicht das problem den befehl un seinen clienten zu schicken, sondern den dort dann auszuführen.

Sicher? :shock: :-D

Zitat:

Zitat von dominikkv
[...] und mit der konsole meine ich zB dass du damit jeden beliebigen befehl eingeben kannst wie zB programme ausführen/dateien öffnen, pc runterfahren oder so.

ShellExecute, CreateProcess?! :P

dominikkv 6. Nov 2007 14:36

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von Deep-Sea
Zitat:

Zitat von dominikkv
so wie ich das sehe hat er nicht das problem den befehl un seinen clienten zu schicken, sondern den dort dann auszuführen.

Sicher? :shock: :-D

ok, überzeugt^^

Achim, du musst dir ein Protokoll ausdenken.
zB immer wenn du eine Nachricht verschickst sendest du
Zitat:

'<msg>Hallo'
und wenn du einen Befehl verschickst
Zitat:

'<do>shutdown /f'
und der client wertet das zwischen den <> aus und schreibt den rest entweder in das chat-fenster oder sonstwohin.
Das Protokoll ist natürlich nur ein einfaches Beispiel, das kann man noch ausbauen, zB noch den Absender mit angeben oder die Abschickzeit (für Ping).

Zitat:

Zitat von Deep-Sea
Zitat:

Zitat von dominikkv
[...] und mit der konsole meine ich zB dass du damit jeden beliebigen befehl eingeben kannst wie zB programme ausführen/dateien öffnen, pc runterfahren oder so.

ShellExecute, CreateProcess?! :P

ähh, ja, is ne alternative, allerdings kann man damit keine "antwort" zurücksenden wenn du zB wissen willst welche dateien in nem verzeichnis sind oÄ

Deep-Sea 6. Nov 2007 15:04

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von dominikkv
ok, überzeugt^^

Wollte ich nicht einmal :mrgreen:


Zitat:

Zitat von dominikkv
ähh, ja, is ne alternative, allerdings kann man damit keine "antwort" zurücksenden wenn du zB wissen willst welche dateien in nem verzeichnis sind oÄ

Weniger, stimmt ^^
Aber irgendwie vertrau ich dem Konsolen-Rumgespiele nicht so sehr :stupid:


(Hach, wahren das noch Zeiten, als programmieren noch ein Hobby war :love: :mrgreen:)

Nuclear-Ping 6. Nov 2007 15:23

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von Deep-Sea
Sicher? :shock: :-D

Denke schon.

Zitat:

Zitat von Aike
Hallöchen :-)

Ich habe mir ein "Chat-Programm" geschrieben, [...].

Zitat:

Client:
Sende "command_start_Befehl" //realisiert

Server:
Empfängt "command_start_Befehl" //realisiert <<---


Deep-Sea 6. Nov 2007 15:28

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von Nuclear-Ping
Denke schon.

Möglich, möglich ^^

Aike 6. Nov 2007 20:44

Re: Befehle von einem Programm an ein anderes senden
 
Öh, also ihr scheint mich falsch zu verstehen. Es geht nicht darum, dass die Befehlsweitergabe zwischen Server und Client nicht funktionieren würde. Aber der Empfänger soll den Befehl an ein drittes Programm (meines) weitergeben. Dort soll sich dann ein Menü öffnen oder dgl.

ShellExecute, CreateProcess, Batches ... alles nicht das richtige.

dominikkv 6. Nov 2007 22:16

Re: Befehle von einem Programm an ein anderes senden
 
also es geht im grunde um ene einfache kommunikation (austausch von strings) zwischen 2 von dir erstellten programmen?
[dp]Pipes,[/dp] [dp]Named Pipes,[/dp] Hier im Forum suchensendmessage

Deep-Sea 7. Nov 2007 07:22

Re: Befehle von einem Programm an ein anderes senden
 
Zitat:

Zitat von Aike
[...] Aber der Empfänger soll den Befehl an ein drittes Programm (meines) weitergeben. Dort soll sich dann ein Menü öffnen oder dgl.

Schon klar. Aber wo genau ist das Problem? Beim Übergeben des Befehls an das dritte Programm oder das Ausführen des Befehls selbst?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 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