Problem z WinExec

0

Mam olbrzymi problem z procedura winexec...
Napisalem program w pascalu, ktory na samym poczatku wszytuje swoje ustawienia z pliku INI znajdujacym sie w tym samym katalogu co plik exe tego programu. Nastepnie napisalem drugi program w delphi, ktory mial uruchamiac ten pierwszy program ktory jest napisany w pascalu.
Uzylem takiej procedurki

WinExec('C:\moj program.exe',SW_show);

i... program startuje, ale pojawia sie komunikat, ze nie znaleziono pliki INI.... a jak program uruchomie "z reki" to startuje z ini bez problemu... moze ktos mi wyjasnic o co chodzi?

0

jak wczytujesz plik ini - z pelnej sciezki (np. TINIFile.Create('c:/katalog/plik.ini')) czy z samej nazwy pliku (np. TINIFile.Create('plik.ini')) ??

0

uzywam Dosowego pascala, stosuje opcje Assign(ini, 'cofig.ini');

Jesli podam mu dokladna sciezke, to wtedy dziala... :/ ale niestety nie moze byc stala sciezka dostepu. Musi byc zawsze dana na folder programu. Jak mozna to rozwiazac?

0

to moze po prostu wgrywaj plik z pelna sciezka:


Assign(ini, dir + 'config.ini');

zmienna dir mozesz uzyskac wyodrebniajac nazwe katalogu ze sciezki aplikacji:

dir := ExtractFilePath(ParamStr(0));

ta funkcja powinna byc w module SysUtils

0

Nie bardzo to przejdzie, bo program stosuje dosc duza procedure napisana przeze mnie do dzialania na zasadzie HOTFolderu. I ta procedura tez nie dziala jesli jest uruchomiony przez winexec. A przerobienie tego wg twojej podpowiedzi zajeloby zbyt duzo czasu poza tym, jest 15 tych programow, i kazdy rozni sie polowa elementow, i kazdy musialbym przeedytowac. program z wykorzystaniem Winexeca mial sluzyc do zarzadzania nimi.... Wiec nie bardzo ;( czy jest jakas inna procedura dzialajaca na zasadzie WinExec ? ktora nie ma tego bledu?

shellexecute daje taki sam efekt jak WinExec... ;(

1 użytkowników online, w tym zalogowanych: 0, gości: 1