Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi cmd.exe und ShellExecute liefern verschiedene Ergebnisse (https://www.delphipraxis.net/102626-cmd-exe-und-shellexecute-liefern-verschiedene-ergebnisse.html)

xZise 1. Nov 2007 17:31

Re: cmd.exe und ShellExecute liefern verschiedene Ergebnisse
 
Tut mir leid, dass ihr total überfordert seit. :mrgreen:

Also der ShellExecute - Aufruf:
Delphi-Quellcode:
ShellExecute(Handle, PChar('open'), PChar(ExtractFileName(ePlink.Text)), PChar('-ssh -P 22 -pw "<Passwort>" root@192.168.3.201 -m "' + ExtractFilePath(ParamStr(0)) + 'info.dbtef'), PChar(ExtractFilePath(ePlink.Text)), SC_DEFAULT);
Eigentlich dürfte nichts fehlen. (Ist von Hand getippt)

Der Befehlstext sieht so aus:
Zitat:

echo <Ein Anderes Passwort> > /leibnetz/xZise/pwd
echo <Ein Anderes Passwort> >> /leibnetz/xZise/pwd
smbldap-passwd infohe0 < /leibnetz/xZise/pwd
smbldap-passwd infohe1 < /leibnetz/xZise/pwd
.
.
.
smbldap-passwd infohe9 < /leibnetz/xZise/pwd
Würde ich nun obige Parameter ausführen (also kompilieren), kopieren und als Parameter für PLink.exe in die cmd einfügen, macht er alles korrekt.

Die LastError habe ich nicht, weil ich nicht in der Schule bin, und es hier um ein "Schulprojekt" geht.

Als interessante Information:
Wenn ich das erstellen der Datei (die ersten beiden Zeilen) "auslagere" also separat ausführe, funktioniert alles.
(Aber es könnte sein, dass es dauert die Datei zu schreiben, und weis nicht, wann ich den Rest ausführen kann. Na gut gleiches netz und wenig zu machen, aber wer weis!)

MfG
xZise

Luckie 1. Nov 2007 21:07

Re: cmd.exe und ShellExecute liefern verschiedene Ergebnisse
 
Zitat:

Zitat von xZise
Die LastError habe ich nicht, weil ich nicht in der Schule bin, und es hier um ein "Schulprojekt" geht.

In Schulprojekten kann man also nicht schreiben:
Delphi-Quellcode:
ret := Shellexecute(...);
ShowMessage(IntToStr(ret));
und dann mal im Windows SDK oder MSDN nachgucken, was der Rückgabewert bedeutet?

xZise 2. Nov 2007 12:58

Re: cmd.exe und ShellExecute liefern verschiedene Ergebnisse
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von xZise
Die LastError habe ich nicht, weil ich nicht in der Schule bin, und es hier um ein "Schulprojekt" geht.

In Schulprojekten kann man also nicht schreiben:
Delphi-Quellcode:
ret := Shellexecute(...);
ShowMessage(IntToStr(ret));
und dann mal im Windows SDK oder MSDN nachgucken, was der Rückgabewert bedeutet?

Ähm schön, dass du es nicht aus den Kontext gerissen hast:
Zitat:

Zitat von xZise
Die LastError habe ich nicht, weil ich nicht in der Schule bin, und es hier um ein "Schulprojekt" geht.

MfG
xZise

Luckie 2. Nov 2007 13:05

Re: cmd.exe und ShellExecute liefern verschiedene Ergebnisse
 
was machst du denn eigentlich? Du schreibst zwei Passwörter in eine Datei und dann rufst du das Programm unter anderem mit dieser Datei als Parameter auf. Warum benutzt du nicht eine StringListe, um diese Datei zu erstellen?

xZise 2. Nov 2007 13:15

Re: cmd.exe und ShellExecute liefern verschiedene Ergebnisse
 
Zitat:

Zitat von Luckie
Du schreibst zwei Passwörter in eine Datei und dann rufst du das Programm unter anderem mit dieser Datei als Parameter auf.

Fast korrekt.
Das wichtige ist, dass ich zudem (!) noch ein smbldap Aufruf ausführe.
Einzeln ist alles i.o. aber zusammen funktioniert es nur über die cmd.exe!

Zitat:

Zitat von Luckie
Warum benutzt du nicht eine StringListe, um diese Datei zu erstellen?

Welche Datei?
Die auf dem Server oder die bei den Client?
Beim Client tue ich dass, aber auf den Server nicht (weis gar nicht ob das gehen würde).


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

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