Консультация № 66341
10.12.2006, 13:03
0.00 руб.
0 8 1
Помогите с запуском программы. Код в приложении. При вызове процедуры возникает ошибка: project1.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства и тд. Далее ещё ошибка:"Exception EMCIdeviceError in module project1.exe at 00077EA0. Данный файл не найден. Проверьте что путь и имя файла указаны верно." Путь точно правильный.
Если перед запуском процедуры выполнить opendialog1.execute и в нём открыть файл project1.exe и после этого выполнить процедуру из приложения то всё работает. project1.exe изменять нельзя, писал его не я.

Приложение:
tr1:= ExtractFilePath(ParamStr(0)) +‘triadav1‘+‘‘+‘project1.exe‘;ShellExecute(0,‘open‘,pchar(tr1),nil,nil,sw_show);

Обсуждение

Неизвестный
10.12.2006, 15:57
общий
Попробуйте так запустить:ShellExecute(0, nil, PChar(tr1), nil, PChar(ExtractFilePath(tr1)), SW_SHOW);
давно
Мастер-Эксперт
425
4118
10.12.2006, 17:37
общий
Если программа project1.exe находится в подкаталоге triadav1 того же каталога что и Ваша программа, то добавление полного пути не имеет смысла, просто подставте к названию программы нужный подкаталог:ShellExecute(0,‘open‘,pchar(‘triadav1\project1.exe‘),nil,nil,sw_show);Далее. Судя по EMCIdeviceError, в project1.exe у Вас находится компонент TMediaPlayer, который не может найти файл, который он должен воспроизвести. Может быть проще будет кинуть этот компонент (TMediaPlayer) в свою программу и слушать музыку (или смотреть что-то) из нее, чем запускать для этих целей еще одну программу?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
11.12.2006, 06:30
общий
Спасибо Савенко Вадим Иванович. Работает. sir henry - я не имею право что-либо исправлять в project1.exe, спасибо вам за беспокойство.
давно
Мастер-Эксперт
425
4118
11.12.2006, 06:40
общий
Так я Вас и не призывал исправлять в Project1.exe. Вы невнимательно читаете. Прочтите еще раз пожалуйста. :)
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
11.12.2006, 07:27
общий
ага понял. Но запускать надо.
Неизвестный
11.12.2006, 08:21
общий
это ответ
Здравствуйте, Kolyan!
Перед тем, как запускать программу, нужно проверить её существование. С учётом этого в Ваш код нужно добавить:
if FileExists(tr1) then ShellExecute(0,‘open‘,pchar(tr1),nil,nil,sw_show) else
ShowMessage(‘Файла "‘+tr1+‘" не существует.‘)
Неизвестный
11.12.2006, 08:43
общий
Иногда указание пути и имени исполняемого файла не срабатывает и приходится еще и директорию указывать.
давно
Мастер-Эксперт
425
4118
11.12.2006, 09:56
общий
Значит в этой директории нужный медиа-файл лежит, который project1.exe открывает.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Форма ответа