-
как из dll запустить exe файл и не дожидатся завершения его работы (запустить и работать дальше). В моей реализации через winexec(namefile,0)) выполнение длл приостанавливается пока не завершит свою работу exe файл.
-
что-то типа того, видимо?
procedure RunProgram(const aFN: String);
var
kStartUpInfo: TSTARTUPINFO;
kProcessInfo: TPROCESSINFORMATION;
begin
FillChar(kStartUpInfo, SizeOf(kStartUpInfo), 0);
kStartUpInfo.cb := SizeOf(kStartUpInfo);
if CreateProcess(PChar(aFN), nil, nil, nil, False, 0,
nil, nil, kStartUpInfo, kProcessInfo) then
begin
CloseHandle(kProcessInfo.hProcess);
CloseHandle(kProcessInfo.hThread);
end
else
MessageDlg('Ошибка при запуске программу установки!', mtError, [mbOK], 0);
end;
Писал давно, еще до чтения Рихтера. Но вроде все верно.
-
> user51 (27.05.10 11:15)
> его работы (запустить и работать дальше). В моей реализации > через winexec(namefile,0))
Реализацию - в студию.
-- Regards, LVT.
-
> user51 (27.05.2010 11:15:00) [0]
Что то ты не всю правду говоришь.
-
Дмитрий Т спасибо работает
реализация winexec(pchar('c:\file.exe'),0);
-
> user51 (27.05.2010 11:47:04) [4]
Для начала забудь про winexec, это дела давно прошедших дней, когда компьютеры были большие, а АПИ маленькое и после 95 года категорически не рекомендуется к использованию. Shell Execute наше все.
-
спасибо уже сделал как подсказали выше и установил на прогонку, вроде все работает
-
Anatoly Podgoretsky © (27.05.10 12:25) [5]
> после 95 года категорически не > рекомендуется к использованию.
Но работает же
-
> Игорь Шевченко (27.05.2010 19:50:07) [7]
Да мало ли что, справка не рекомендует, а к ней стоит прислушаться, кроме того ShellExecute имеет большие возможности, не говоря уж об CreateProcess
-
Anatoly Podgoretsky © (27.05.10 20:06) [8]
Есть предложение исправить справку
-
> Игорь Шевченко (28.05.2010 10:38:09) [9]
Нет, пусть сами думают!
|