[Delphi] Problem z Syntalkiem

0

W onCreate formy piszę tak:
ShellExecute(handle,'open',PChar(ExtractFilePath(Application.ExeName)+'\syntalk_fixed\SYNTALK.EXE'),nil,nil,sw_show);

I Syntalk wywala błąd "Nie znaleziono pliku: pl_22.alf"

Zupełnie nie wiem co zrobić, ponieważ plik pl_22.alf stoi jak nie powiem obok execa :-/

0

Spróbuj jeszcze ustawić aktualny katalog na: Application.ExeName+'\syntalk_fixed\ , Jeśli to nie to to nie wiem.

0

Nadal to samo.... Nie wiem, może spróbuj to uruchomić u siebie... [sciana]

Hmmm...a jednak działa...napisałem tak:
ShellExecute(handle,'open','syntalk.exe',nil,Katalog,sw_hide)
I wszystko jest dobrze, tylko Syntalk nie jest ukryty tak jak mu każę...wie ktoś jak rozwiązać ten problem?

Tjaaa....wcale nie działa...jesli Syntalk jest już wcześniej uruchomion - przed programem to działa, ale jak uruchamia go mój program, to wtedy nie chce mówić.

0

Sugestia jakiegoś tam przypadku, który może zaistnieć a dotyczy pliku pl_22.alf

Jeżeli masz odwołania z exe-ca z programu (np. Program.exe), który uruchamia (odpala) inny exe-c (Program1.exe) poleceniem ShellExecute, a w innym katalogu znajduje się plik wykonywalny główny Program.exe, a w innym podkatalogu Program1.exe, obok którego znajduje się SynTalk.exe z plikiem pl_22.alf, TO:
Porada. Okazuje się, iż plik pl_22.alf musi (możesz rozwiązać to w inny sposób) być umieszczony obok programu głównego, oraz programu uruchamianego (odpalanego). Tak samo dotyczyć będzie np. kiedy plik główny to Program.exe a podprogramem jest Program1.dll + SynTalk.exe + pl_22.alf.

Obrazowo wyglądało to tak:

Katalog A (Folder) \Podkatalog A1 (Folder)
Program.exe + pl_22.alf Program1.exe + SynTalk.exe + pl_22.alf
lub
Program.exe + pl_22.alf Program1.dl +SynTalk.exe +pl_22.alf

Program1.exe uruchamiany (odpalany) przez Program.exe poleceniem ShellExecute.
Program1.dll uruchamiany (odpalany) przez Program.exe poleceniem ShellExecute.

Odpowiedź dla tego przypadku: Umieść plik pl_22.alf w dwóch miejscach.
Sprawdź najpierw, czy nie naruszasz postanowień licencji. I czy autor programu pozwala utworzyć drugą kopię pliku.

A co się tyczy ShowMessage('Błąd! Musisz pierw uruchomić Syntalka!');
Odwiedź stronkę: http://4programmers.net/article.php?id=231

Inna sugestia. Zamiast wyrażenia 'stoi jak nie powiem :D ' użyj [wstyd] innego określenia 'znajduje się (...)'.

Pozdrawiam ;)

0

Zapomniałem już jak to zrobiłem ale działa :D

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