ShellExecute mit Arbeitsverzeichnis
7. Feb 2007, 13:36
Hallo zusammen.
So nachdem ich nun diverse Einträge zur ShellExecute gelesen habe, konnte ich zu meinem Problem keine Lösung finden - bin vielleicht auch zu blind.
Folgendes habe ich:
Mein Programm wird in irgendeinem Verzeichnis vom Anwender gestartet. In diesem Verzeichnis liegt eine Text-Datei mit Pfadangaben und Programmnamen der aufzurufenden Programmen vor (die Einträge sind mir vorher nicht bekannt).
Diese wird verarbeitet und die Programme dann per ShellExecute aufgerufen.
Das Problem dabei ist, dass die gerufenen Programme in ihrem eigenen Verzeichnis laufen müssen und nicht in dem Verzeichnis meines (rufenden) Programms, da sich in den eigenen verzeichnissen jeweils notwendige Steuerdateien befinden.
Mein Testcoding sieht derzeit so aus:
ShellExecute(0, 'open', pchar(temp_string), nil, nil, SW_NORMAL);
Dabei enthält Temp_String zum Beispiel ".\Subdir\Analyzer.exe" oder "C:\temp\Clear.exe".
Es können also sowohl relative als auch feste Pfadangaben vorkommen.
Das Programm wird jeweils auch aufgerufen, findet dann aber seine Steuerdateien nicht, da es im Verzeichnis meines (rufenden) Programmes läuft.
Kann man dem ShellExecute irgendwie mitgeben wo das Programm laufen soll (geht bei diversen Windowsanwendungen auch)?
|