Autor Beitrag
pHaRyNx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 94

win 95, win 2000, win xp, VISTA, Ubuntu 8.04
Delphi 7 PE
BeitragVerfasst: Sa 13.05.06 18:34 
hallo!
Ich habe nochmals ein Problem mit dem ShellExecute-Befehl:
ich möchte ein programm per shellexecute starten und auch gleich weitere eingaben tätigen. hier der auszug aus einem batchscript:

Zitat:

telnet 127.0.0.1 25
helo
mail from:hugo@hugo-rulez.net
....


es folgen noch weitere befehle..., aber ich weiss nicht, wie ich diese via shellexecute anwenden kann.
kann man überhaupt mit shellexecute mehrere befehle miteinander verknüpfen???
bitte helft mir.
mfg pHaRyNx
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Mo 15.05.06 08:54 
Hallo,
nur so ne Idee : lass die Anweisungen doch in einem Batch und starte das dann. Alternativ schreibst du den Batch zur Laufzeit.
pHaRyNx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 94

win 95, win 2000, win xp, VISTA, Ubuntu 8.04
Delphi 7 PE
BeitragVerfasst: So 11.06.06 09:42 
hm, leider musste ich gerade feststellen, dass das batchscript als solches nichtmals funktioniert.
die oben genannten befehle muss ich sonst immer einzeln nacheinander in die windows-cmd eingeben; anders geht es irgendwie nicht!?
gibts da vllt eine lösung mit delphi?

mfg pHaRyNx
nullplan001
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 212

Win 2000 Professional, Debian Linux 4.0 (Etch,Stable)
Pascal (FreePascal 2.0.2, TurboPascal 7.0), C(++) (G++/GCC 3.4.2 + MinGW), Java (JDK 1.5.0_07), PHP (PHP 5.1.4)
BeitragVerfasst: So 11.06.06 10:03 
Ja nee, is klar:
Du startest telnet. Was darunter kommt, hätte eigentlich in ein Batchskript für telnet gehört, denn diese Befehle übergibst du nicht der CMD sondern telnet. Die Batch kriegt aber die CMD, und die kratzt sich dann ganz ernsthaft und besorgt am Kopf. Was du willst, geht so hier:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
copy /q nul tmp.txt && rem Alte tmp.txt überschreiben. Mit nix.
:: Jetzt schreiben wir einfach mal die Befehle auf, die telnet kriegen soll
echo helo >> tmp.txt
echo mail from:me@example.org >> tmp.txt
echo rcpt to:you@example.org >> tmp.txt
echo data >> tmp.txt
echo Subject:Just a test >> tmp.txt
echo. >> tmp.txt
echo Hi you, >> tmp.txt
echo this is just a test, so don't worry 'bout it. >> tmp.txt
echo . >> tmp.txt
:: So, dass ist jetzt cool, du schreibst die Befehlsdatei auf den stdout und legst den stdin von telnet auf den stdout von type
:: Ergebnis: Telnet kriegt die ganzen Befehle ab und sendet sie
type tmp.txt|telnet 127.0.0.1 25

Ich hab das jetzt aus dem Bauch heraus geschrieben, kann sein, dass es nicht klappt. Obwohl ich das weniger glaube.
Tschö,
nullplan
P.S.: Warum machst du das eigentlich nicht mit Sockets? Geht viel einfacher als telnet zu quälen. Einfach einen Socket auf 127.0.0.1:25 und dann geht sie ab, die Post. Sende aber am Ende der Befehle immer einen Zeilenumbruch (Zeichenfolge #13#10) mit, weil sonst die Befehle nicht abgesendet werden. Wenn du es genauer wissen willst: www.c-worker.ch . Ja, die Beispiele sind in C, aber das wird doch wohl zu übersetzen sein. So schwer ist es nicht.

_________________
Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe