Code:
ShellExecute(0, Nil, PChar('makeAVIS.exe'), Nil, Nil, SW_NORMAL);
ich weiss zwar jetzt nicht, was Du genau startest.
Aber Du solltest wissen, dass Dein Aufruf
makeAVIS.exe immer in dem Pfad die EXE Datei sucht, welchen Du in einer Windows Verknüpfung eingetragen hast.
Wenn dort also ausführen in: s C:\ steht, dann wird c:\makeAVIS.exe gesucht.
Wenn Du die Exe direkt im Ordner doppel klickst, dann liefert 'makeAVIS.exe' zufällig den richtigen Pfad.
Auch unter Delphi.
Du solltest also immer paramstr(0) verwenden. bzw ExtractFilepath(paramstr(0));
aufpassen auch bei der Funktion GetCurrentDir, die liefert auch das Verzeichnis, was in der Verknüpfung eingetragen ist.