Liebe Leute
Ich habe zwei Programme, Programm A und Programm B.
Programm A greift per ShellExecute auf Programm B zu, um letzteres zu öffnen.
Programm A arbeitet mit absoluten Pfaden (C:\Ordner\Datei.txt). Programm B arbeitet mit relativen Pfaden (Ordner/Datei.txt).
Problem: Wenn ich Programm B mit Programm A starte, ändert sich der Stammpfad von Programm B, d.h. Ordner/Datei befindet sich nicht mehr im normalen Pfad, in dem sich auch B befindet, sondern im Pfad, über den A gestartet wurde.
Für A ist das kein Problem, da es mit Absolutpfaden arbeitet. Programm B greift aber aufgrund seiner Relativpfade auf Daten zu, die ganz woanders installiert sind.
In Wirklichkeit gibt es 6 Programme, von denen jedes recht gross ist. Viel zu kompliziert, jedes auf Absolutpfade umzuprogrammieren.
Lösung: ShellExecute durch eine Funktion ersetzen, die die Startparameter von Programm B nicht verändert (also ganz so, als würde Windows Explorer das Programm starten).
Oder: Zu Programm B eine Funktion hinzufügen, die den Stammpfad anhand argv[0] wieder korrigiert.
Leider weiss ich keine entsprechenden Funktionen.
Kennt jemand eine?
Liebe Grüsse
Kalsan
PS: Ich weiss nicht, wie man den „Startparameter“ oder „Stammpfad“ richtig nennt. Weiss auch nicht, wie er funktioniert. Ich hoffe, ihr versteht mich trotzdem.