AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hilfe: ShellExecute und warten?

Ein Thema von Acien · begonnen am 20. Feb 2004 · letzter Beitrag vom 20. Feb 2004
Antwort Antwort
Acien

Registriert seit: 20. Feb 2004
1 Beiträge
 
#1

Hilfe: ShellExecute und warten?

  Alt 20. Feb 2004, 14:59
Hallo,

Ich möchte einen anderen Prozess mit Delphi starten, und habe bis jetzt ShellExecute benutzt. Ich habe auch den Verzeichnis angegeben als Parameter, wo die andere Dateien liegen, die benötigt sind, um den anderen Prozess zu starten.

ShellExecute(Application.Handle,'open',pChar(sFileName),nil,pChar(sExePath),sw_normal);

Damit habe ich geschafft, das Programm(sFilename) zu starten. Und dann möchte ich eine Schleife machen, damit einen weiteren Prozess gestartet wird, allerdings nach dem ersten Prozess beendet ist.
Ich komme jetzt zu einer Sackgasse.

Create Process und andere Funktionen in diesem Forum habe ich benutzt. Das Problem ist : Mit den Funktionen startet mein Program nicht mehr richtig. Das Programm wird gestartet, kann aber nicht mehr die andere benötigten Dateien finden (die sind zwar in dem selben Verzeichnis). Bsp. help.exe braucht a.dat, b.dat, usw. Help gestartet, aber nicht richtig funktioniert, weil a,b.dat nicht gefunden werden.

Gibt es eigentlich eine Methode, wie man die Verzeichnisse irgendwie einbinden? Oder mit einem anderen Weg, ich benutze trotzdem ShellExecute und noch eine (?) Funktion, die überprüft, wartet so lange bis das Programm beendet ist?

Auf Tips freue ich mich sehr... Danke

Gruss
Felix
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Hilfe: ShellExecute und warten?

  Alt 20. Feb 2004, 15:47
Das Problem dürfte wahrscheinlich in deinem Programm liegen. Wäre es denkbar, dass du den Pfad zu den Dateien gar nicht bzw. fehlerhaft mit GetCurrentDir abfragst? In dem Fall benutzt du das Arbeitsverzeichnis, das nicht zwangsläufig mit deinem Programmordner identisch sein muss.

Bei ShellExecute kannst du das Problem beseitigen, weil du das Arbeitsverzeichnis als Parameter angeben kannst. Bei RunProcess (ich nehme an, du hast die Funktion von Luckie gefunden und probiert) geht das nicht.

Entweder setzt du also das Arbeitsverzeichnis vor dem Aufruf des Programms (SetCurrentDir), oder du änderst eben das zu startende Programm ab, dass es den Pfad zu den notwendigen Dateien korrekt mit
ExtractFilePath(paramstr(0)) ermittelt, wenn sich diese im Programmordner befinden.
  Mit Zitat antworten Zitat
Assarbad
(Gast)

n/a Beiträge
 
#3

Re: Hilfe: ShellExecute und warten?

  Alt 20. Feb 2004, 16:11
Schau mal hier:

http://assarbad.net/stuff/shellapiex.pas

Funktioniert exakt wie ShellExecute, nur daß man optional auch warten kann. Ist auch in der Codebase. Ich versteh sowieso nicht, warum immer CreateProcess() angepriesen wird, wo das doch einen ganz anderen Hintergrund hat :-/
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:16 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