Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
ВнизЗапуск внешнего приложения Найти похожие ветки
← →
[Salo]Phantom (2007-05-16 12:31) [0]Помогите разобраться почему такой код выполняется не до конца (не запускается приложение)
procedure TfmMain.RunApp(AppPath: string);
var PMSI: TStartupInfo;
PMPI: TProcessInformation;
begin
CreateProcess(nil, @AppPath[1], nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, PMSI, PMPI);
end;
procedure TfmMain.FormActivate(Sender: TObject);
begin
copyFile(PChar(UpdatePath), PChar(LocPath), True);
RunApp(LocPath); //-в этом месте отказался работать
Application.Terminate;
end;
Если же исползовать WinExec, то все работает, но его Delphi не рекомнедует:( Если же убрать впередиидущую операцию копирования и файл уже находится в нужном месте запуск происходит нормально!
← →
Сергей М. © (2007-05-16 12:40) [1]
> почему
> не запускается приложение
Потому что в ходе работы функции CreateProcess возникла ошибка.
← →
Джо © (2007-05-16 12:40) [2]Структура TStartupInfo требует инициализации. Читать Справку по CreateProcess.
← →
[Salo]Phantom (2007-05-16 12:59) [3]Действительно исправил RunApp, добавив в начале FillChar(PMSI, SizeOf(TStartUpInfo), 0); и все заработало. Спасибо за помощь. Дескрипторы тоже буду очищать, "мусор не стоит выносить из избы" :)
← →
Джо © (2007-05-16 13:02) [4]> [3] [Salo]Phantom (16.05.07 12:59)
> Действительно исправил RunApp, добавив в начале FillChar(PMSI,
> SizeOf(TStartUpInfo), 0)
Кроме того, нужно инициализировать поле PMSI.cb
← →
Джо © (2007-05-16 13:02) [5]И проверять возвращаемое функцией значение.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.057 c