Entwickler-Ecke

Dateizugriff - Externe application runnen


JeanvanHees - Fr 13.09.02 10:29
Titel: Externe application runnen
Tag :wink2:

Hier 'ne einfache frage, die scheinbar so einfach ist das ich nirgendwo anders die antwort kan finden.

Ich möchte gern weil mein program lauft eine *.exe runnen die in eine andere directory steht.
Ich weiß noch das es ganz einfach war das in C zu machen, also kann es auch in Delphi nicht swierig sein..oder :?:


wwerner - Fr 13.09.02 10:47

Such mal hier im Forum nach shellexecute und createprocess


JeanvanHees - Fr 13.09.02 11:17

Ok,
Ich hab schon etwas mit shellexecute bei Delphi32.com gefunden und es funktioniert prima
Danke :dance:


JeanvanHees - Fr 13.09.02 12:32

Ooh, Ich brauchte es eigentlich noch etwas complizierter ich möchte einen dos command runnen


thePraYeR - Fr 13.09.02 13:03

Wenn es ein Kommando des Interpreters ist, dann mußt Du es als Parameter an diesen übergeben.

Bsp.: "command.com dir c:"

Ansonsten Ausführung mit SchellExecute oder CreateProcess wie gehabt.


JeanvanHees - Fr 13.09.02 13:50

Ok, aber das problem ist jetzt, Ich muß nach 'ne bestimmte directory in das command prompt, und von da aus einen program runnen.


LCS - Fr 13.09.02 14:20

Hi
sollte auch nicht das Problem sein. Du kannst ja dein Programm mitsamt dem Pfadnamen angeben
command.com c:\sonstwo\anders\Prog.exe
Oder du schreibst die Befehle zum Verzeichniswechsel und Programmstart in eine Batch-Datei und startest die.
Aufpassen musst du höchstens bei langen Dateinamen. Weiss nicht ob das mit denen auch funktioniert.

Gruss Lothar


JeanvanHees - Fr 13.09.02 14:39

Ok, wenn ich im startmenu von windows run selectiere (ich weiß nicht wie das bei die deutsche windows heißt) und ich setze dan dies hier dorthin

Zitat:
cmd /k C:\bla1\bla2\stdutil -q -m -s C:\ -d C:\ -f hallo.z

(stdutil ist ein program das der file hallo.z von source C:\ übersetzt und auf destination C:\ setzt)
funktioniert es, aber nicht in delphi.
Aber wenn ich nur das cmd will geht es schon in delphi, aber ich kann dort nicht die zeile am wirken bringen.... nicht mit ShellExecute jedenfalls:crying: [/quote]


LCS - Fr 13.09.02 14:58

Hi
probier mal

Quelltext
1:
2:
3:
sPrg:=PChar('cmd /k C:\bla1\bla2\stdutil'); 
sPrm:= PChar('-q -m -s C:\ -d C:\ -f hallo.z'); 
ShellExecute(Handle, 'open', sPrg, sPrm, nil, SW_SHOWNORMAL);


JeanvanHees - Fr 13.09.02 15:09

Es hat nicht funktioniert, ich bekomm nicht ein mal das cmd zu sehen.
Danke für die mühe jedenfalls.


JeanvanHees - Fr 13.09.02 15:32

:dance: :dance2:
Ich hab ihm...Dein code war beinahe richtig LCS..
Diese site hat auch gute informationeen drüber
http://www.mvps.org/vbnet/index.html?code/shell/shellexecute.htm

Nochmals danke, meinen tag ist wieder gerettet :D