Wygląda do tak w katalogu gdzie mam napisany program jest inny program o nazwie PROG.exe który czyta sobie konfig z katalogu w którym się znajduje PROG.INI. I ten program PROG uruchamiany jest WinEXEC'iem przez moj program. Wszystko sie odpala jest ok, gdyby nie fakt ze w tym katalogu sa kolejne dwa foldery w ktorych jest znow program PROG.exe tyle ze te juz nie czytaja konfigów ze swoich katalogów, ale konfig z głownego katalogu, czyli z tego gdzie znajduje sie moj program, PROG.exe i PROG.ini. Jak zrobic zeby kazdy program odpalał konfig ze swojego katalogu a nie z katalogu w ktorym zjaduje sie moj program?
Pobieraj podczas uruchomienia aktualny katalog, w ktorym znajduje sie dana aplikacja. Znajac sciezke do programu, zmieniasz ja na sciezke do konfiga
jest to w FAQ
//Ps. na przyszlosc nazywaj sensownie swoje tematy, bo inaczej beda one przenoszone do kosza
trzy wyjścia które można użyć - polecane drugie (najlepiej w połączeniu z trzecim):
- daj przed WinExec polecenie ChDir na ścieżkę programu
- w swoim programie nie odczytuj konfiga w stylu 'prog.ini' tylko ExtractFilePath(Application.ExeName) + '\prog.ini'
- zamiast WinExec użyj ShellExecute (ShellApi do uses) i tam jako czwarty parametr masz ścieżkę z której program ma być uruchomiony, daj tam: PChar(ExtractFilePath(program_do_uruchomienia))
no wlasnie w tym sęk że program nie czyta konfiga z parametru, po prostu ma gdzies w kodzie zapisane ze ma sie tak nazywac i jest w katalogu z programem
a kto tu mówi o parametrach ? skoro to nie jest twój program to wykorzystaj trzeci sposób, chyba że rzeczywiście mimo że program uruchamiast i jest na
e:\program\costam\prog.exe
to czyta konfiga z
c:\program\prog.ini
to wtedy powiedz autorowi programu że jest mało normalny