Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Text Datei von Delphi Programm an einen Linux PC senden (https://www.delphipraxis.net/192022-text-datei-von-delphi-programm-einen-linux-pc-senden.html)

Dalai 14. Mär 2017 16:21

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Es gibt nicht nur PuTTY und plink.exe sondern auch pscp.exe und psftp.exe. Letztere erlauben das Übertragen einzelner Dateien. Wenn es also nicht unbedingt im Programm fest integriert sein muss, bieten sich diese an. Kommt darauf an, wie häufig da Updates nötig sind.

Grüße
Dalai

BrightAngel 14. Mär 2017 16:27

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Genau. Klar, ein anderes Programm im Hintergrund starten und dann nur über Startparameter und die Pipe kontrollieren ist nicht immer schön. Andererseits, weil du grade auch das Thema Update erwähnst: Das ist dann auch sehr einfach zu updaten; grade weil das Interface zum arbeitenden Subsystem so "einfach" gestaltet ist. 8-)

Brighty

A.Griffin 15. Mär 2017 08:20

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Pscp scheint ja alles zu sein was ich brauche. Meint ihr es wäre einfach machbar die plink Komponente für pscp umzuschreiben? Ich habe auch das hier gefunden. Weiß einer von euch wo ich MW_WinMisc und MW_Files herbekommen kann?

BrightAngel 15. Mär 2017 21:45

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Zitat:

The code is for Delphi 2010 and uses my WinMisc and Files class. You can implement your own WinMisc.ExecuteConsolePipe() and Files.CreateUnique(), or
you can E-Mail me and I will send you the source of MW_WinMisc and MW_Files.
The code should not be too difficult to port to lower Delphi versions.
(ganz oben steht das auf der von dir verlinkten Seite; der Autor ganz oben hat zwar dort keine Email hinterlassen, aber google förderte das hier zu Tage [anderes Thema, aber selber(?) Autor])

Also ja die pscp.exe reicht quasi für den Job. Wenn man sich den von dir verlinkten Quellcode anschaut, dann fällt auf, dass er den Befehl zum Starten der Exe einfach programmatisch zusammenbaut. :)
Im Zweifel findest du hier auch noch ein wenig Dokumentation dazu: klick!

Brighty

A.Griffin 16. Mär 2017 08:00

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Mir wurde jetzt auch gesagt, dass ich mit WinExec einfach die pscp.exe ausführen kann. Wäre das einfach möglich?

BrightAngel 16. Mär 2017 08:20

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Genau, das ist die Intention. Nur WinExec ist nur Zwecks Kompatibilität noch da (siehe diese Notiz ganz oben).
Mehr Kontrolle (und moderner) geht es mit der Aufruffamilie um CreateProcess. Damit kannst du dann auch sehr fein einstellen, was genau aufgerufen wird.

[Edit 1]
Anders als putty (wo es ja um Interaktivität geht), brauchst du bei pscp grundsätzlich nicht das stdIn/Out des neuen Prozesses. Jedoch bist du vermutlich am Erfolg und des Fortschritts der Übertragung interessiert!? Ich habe das jetzt bei pscp nicht getestet; vielleicht kannst du grundsätzlichen Erfolg über den ExitCode von pscp herausfinden? Wenn du mehr Details brauchst, dann müsstest du dir gegebenenfalls StdOut besorgen und die Ausgabe in deinem Programm weiterverarbeiten. :)
[/Edit]

[Edit 2]
Falls du das mit CreateProcess machen solltest, seien dir in der STARTUPINFO die Felder hStdOutput und hStdError (ganz unten in der Struct) wärmstens zu empfehlen :)
[/Edit]

[Edit 3]
Das Handle kannst du mit CreatePipe erzeugen. Dieser Aufruf erzeugt eine Pipe mit zwei verbundenen Handles. Das eine Ende kannst du dann dem neuen Prozess übergeben und aus dem anderen kannst du dann (z.B. in einem eigenen Thread in deinem Programm) wiederholt lesen, bis das Programm sich beendet/du das Programm beendest/die Ausgabe des Programms dich nicht mehr interessiert/.... Aufräumen nicht vergessen. :P
[/Edit]

[Edit 4]
Nachtrag: Artverwandtes Thema gefunden; Klick!
[/Edit]

Brighty

A.Griffin 16. Mär 2017 10:11

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Ich habe es jetzt erstmal mit WinExec gemacht auch, wenn CreateProcess empfohlen ist. Mit WinExec ging es jetzt sehr einfach. Ich gucke mir aber, wenn ich mal Zeit habe an wie es mit CreateProcess geht. Vielen Dank an alle für die Antworten.

freimatz 16. Mär 2017 13:14

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Zitat:

Zitat von A.Griffin (Beitrag 1364382)
... wenn ich mal Zeit habe ...

:lol:

A.Griffin 16. Mär 2017 13:35

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Zitat:

Zitat von freimatz (Beitrag 1364392)
Zitat:

Zitat von A.Griffin (Beitrag 1364382)
... wenn ich mal Zeit habe ...

:lol:

..oder die Software nicht läuft und ich gezwungen bin mich in CreateProcess einzulesen.

BrightAngel 16. Mär 2017 14:19

AW: Text Datei von Delphi Programm an einen Linux PC senden
 
Machst du es jetzt dann über den ExitCode von pscp? Was passiert, wenn du keine Verbindung zum Server aufbauen kannst? Merkt dein Programm das?

Brighty


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr.
Seite 2 von 3     12 3      

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