AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit ShellExecute (pscp.exe)

Ein Thema von Errraddicator · begonnen am 6. Okt 2008 · letzter Beitrag vom 7. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#1

Probleme mit ShellExecute (pscp.exe)

  Alt 6. Okt 2008, 15:28
Hiho,

ich hab da ma wieder ne Frage:

Ich möchte eine Datei von einem Windows Rechner (der wo das Programm läuft) auf einen Linux-Rechner kopieren.
Das mache ich bisher wie folgt:
Delphi-Quellcode:
copyExe := '<path>\pscp.exe';
copyParams := '-l <user> -pw <password> ' + targetName + ' <server>:<path>';
copyDir := ExtractFileDir(copyExe);
ShellExecute(self.Handle, 'open', PChar(copyExe), PChar(copyParams), PChar(copyDir), SW_SHOWNORMAL);
Die ganzen <>-Teile sind natürlich in echt komplett & korrekt gefüllt, nur aus Datenschutzgründen hier nich aufgeführt. *G*

...

Wenn mein Programm jetzt an diese Stelle kommt, schickt es den Befehl weg, bekommt auch keine Fehlermeldung, PSCP poppt auf und geht sofort wieder zu ohne was zu machen.
Dann dachte ich, das was an dem Befehl falsch wäre, wenn ich mir aber copyExe und copyParams z.B. ma in ne LOG ausgeben lasse und vom selben Rechner über cmd ausführe, klappt der Befehl 1A.

Hat wer ne Idee, woran das liegen kann, dass ein Befehl aus cmd heraus klappt, aber aus meinem Delphi Programm nicht?
Oder vielleicht einfach nur nen Tipp, wie ich die Ausgabe von PSCP abfragen kann, denn bisher sehe ich ja nicht mal ne Fehlermeldung, sondern halt nur dasses nich gefunzt hat.

...

Oder liegt es vielleicht an Putty´s PSCP?
Bei anderen Programmen arbeite ich praktisch genauso mit ShellExecute und da funzt es...


Danke im Voraus

cu Patrick
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 6. Okt 2008, 15:57
Hallo,

schau Dir mal den Rückgabewert von ShellExecute an, eventuell hilft der Dir weiter.
  Mit Zitat antworten Zitat
Kuster Peter

Registriert seit: 3. Apr 2007
Ort: Zürich
136 Beiträge
 
Delphi 7 Professional
 
#3

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 6. Okt 2008, 16:34
ShellExecute läuft nur auf Windows, soviel ich weis. Schau mal im Lazarusforum nach, dort wurde das kürzlich diskutiert. Ansonsten dort die Frage nochmals stellen, dort wird Ihnen geholfen, denn dort tummeln sich die Linux Cracks.

http://www.lazarusforum.de/

Peter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 6. Okt 2008, 16:40
Wieso Lazarus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Kuster Peter

Registriert seit: 3. Apr 2007
Ort: Zürich
136 Beiträge
 
Delphi 7 Professional
 
#5

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 6. Okt 2008, 20:12
Lies meine Antwort, dann erübrigt sich Deine Frage.

Peter
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 6. Okt 2008, 21:18
Hi,

Zitat von DeddyH:
Wieso Lazarus?
Zitat von Kuster Peter:
Lies meine Antwort, dann erübrigt sich Deine Frage.
Hi Kuster Peter,

ich muß DeddyH zustimmen. Errraddicator führt das Windows Programm doch auf einem Windows Rechner aus. War der Verweis auf Lazarus und "Linux-Cracks" ein Mißverständnis?

Zitat von Errraddicator:
Ich möchte eine Datei von einem Windows Rechner (der wo das Programm läuft) auf einen Linux-Rechner kopieren.
@Errraddicator: Probier mal folgendes

ShellExecute(0, 'open', PChar(copyExe), PChar(copyParams), PChar(copyDir), SW_SHOWNORMAL); // <- statt Self.Handle eine 0 Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 7. Okt 2008, 07:36
Habs ma mit 0 anstatt self.Handle ausprobiert, bringt auch nix.
So hatte ich es btw auch ganz zuerst, habs dann aus lauter Verzweiflung schon von 0 auf self.Handle geändert

...

Den Rückgabewert habe ich mir auch noch ma inne Log ausgeben lassen und der ist 42, was laut Hilfe ja soviel wie erfolgreich heißt.

Das Kommandozeilenfenster von PSCP geht ja auch auf, das heißt ShellExecute muss ja den Befehl weg geschickt haben.
Allerdings schließt es sich sofort wieder.
Dann habe ich gedacht, mein Befehl wäre falsch, aber wenn ich den gleichen Befehl 1:1 so inner Kommandozeile eintippe, funktionert er... Das entzieht sich irgendwie meinem Verstand.

...

Gibts denn vielleicht ne Möglichkeit die Ausgabe von PSCP von der Kommandozeile in eine Textdatei umzuleiten, ähnlich wie ein ">" in der Kommandozeile selbst?
Damit ich mal sehe, was PSCP eventuell zu meckern hat?
  Mit Zitat antworten Zitat
Kuster Peter

Registriert seit: 3. Apr 2007
Ort: Zürich
136 Beiträge
 
Delphi 7 Professional
 
#8

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 7. Okt 2008, 09:14
So wie ich es verstanden habe, soll das Programm unter Linux laufen, doch wenn ich das so lese, meint er wahrscheinlich, dass er von einem reinen Windows auf einen Rechner mit Linux und Wine oder so wechselt. Genaue Angaben wäre für eine richtige Antwort hilfreich.

Unter Linux läuft ShellExecute nicht, dort muss man das anders Programmieren. Ausserdem kann man auch plattformübergreifend diesen Link anders Programmieren, ohne ShellExecute. Dieses Thema wurde im Lazarus Forum diskutiert inkl. Lösungsvorschläge. Deshalb mein Hinweis zu diesem Forum.

Peter
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 7. Okt 2008, 09:20
Hallo,

schreib Dir 'ne Batchdatei, in die Du den Aufruf von pscp.exe so rein schreibst, wie er vom Dos-Prompt aus funktioniert. Dahinter schreibst Du pause und rufst nun über ShellExecute die Batchdatei auf.
Als Ergebnis sollte die Batchdatei nach dem Aufruf des Programmes stehen bleiben und auf einen Tastatusdruck warten. Mit ein bisserl Glück kannst Du dort dann auch eventuelle Fehlermeldungen von pscp.exe sehen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

Re: Probleme mit ShellExecute (pscp.exe)

  Alt 7. Okt 2008, 09:27
Oder statt das Programm direkt den Kommandointerpreter (cmd.exe) aufrufen und den ganzen jetzigen Aufruf als Parameter (evtl. angeführt von "/c") übergeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:45 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