Ścieżka do pliku EXE

0

Witam! Potrzebuję pomocy.

Otóż próbuję uruchomić plik [.exe] za pomocą polecenia:

ShellExecute(Handle, 'open', 'program.exe', nil, 'C:\', 1);
 

Nie mogę skorzystać z WinExec bo nie korzystam z Delphi.

Podobnie ma się sprawa z atrybutem wyświetlania - zamiast SW_SHOWNORMAL jest 1 ponieważ tak ma być.

Ale problem mam w tym, że aby otworzyć plik exe muszę podać jego pełną ścieżkę. A jeśli ktoś trzyma go gdzie indziej niż ja to już się nie uruchomi. Normalnie jeśli plik znajduje się w katalogu głównym programu, wystarczy podać nazwę, ale widać w plikach exe jest inaczej. Próbowałem skojarzyć go ze zmienną plikową funkcją assignfile, ale to nie daje efektu. Jeśli ktoś zna sposób na to, jak ustalić położenie programu na dysku, by można było dodać je w odpowiednie miejsce w tym poleceniu to byłbym wdzięczny, gdyby się tym podzielił.

Z góry dziękuję!

0
Arthi napisał(a)

Nie mogę skorzystać z WinExec bo nie korzystam z Delphi.

...które z Delphi nie ma NIC wspólnego bo to stara funkcja WINAPI.

1
Arthi napisał(a)

jak ustalić położenie programu na dysku

Wg mnie jedyna możliwość to po prostu przeszukać cały dysk za pomocą FindFirst/FindNext (wszystkie katalogi i podkatalogi).
Po znalezieniu, zapisać ścieżkę do programu w jakimś pliku tekstowym żeby nie trzeba było za każdym razem szukać

0

chodzi o to, żeby po przeniesieniu też działało, więc chyba trzeba by powtarzać wyszukiwanie przy każdym uruchomieniu. Czy w takim razie mógłby ktoś podać przykład wykorzystania powyżej wspomnianej metody, ewentualnie z małym komentarzem/objaśnieniem???

Z góry THX

0

OK, znalazłem!!!

do zmiennej typu string trzeba przypisać:

ExtractFilePath(Application.ExeName)+'Program1.exe' //czyli glowny katalog programu+'nazwa pliku.exe'

a następnie wyrazić to

ShellExecute(Handle, 'open', PChar(zmienna do ktorej przypisywaliśmy) , nil, 'C:\', 1);

Sorki, za klopot.

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