![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как из dll запустить exe файл [D5, WinXP]
user51 © (2010-05-27 11:15:00)как из dll запустить exe файл и не дожидатся завершения его работы (запустить и работать дальше). В моей реализации через winexec(namefile,0)) выполнение длл приостанавливается пока не завершит свою работу exe файл.
Anatoly Podgoretsky (2010-05-28 11:44:00) [1]> Игорь Шевченко (28.05.2010 10:38:09) [9]
Нет, пусть сами думают!
Игорь Шевченко (2010-05-28 10:38:00) [2]Anatoly Podgoretsky © (27.05.10 20:06) [8]
Есть предложение исправить справку
Anatoly Podgoretsky (2010-05-27 20:06:00) [3]> Игорь Шевченко (27.05.2010 19:50:07) [7]
Да мало ли что, справка не рекомендует, а к ней стоит прислушаться, кроме
того ShellExecute имеет большие возможности, не говоря уж об CreateProcess
Игорь Шевченко (2010-05-27 19:50:00) [4]Anatoly Podgoretsky © (27.05.10 12:25) [5]
> после 95 года категорически не
> рекомендуется к использованию.
Но работает же
user51 (2010-05-27 12:32:00) [5]спасибо уже сделал как подсказали выше
и установил на прогонку, вроде все работает
Anatoly Podgoretsky (2010-05-27 12:25:00) [6]> user51 (27.05.2010 11:47:04) [4]
Для начала забудь про winexec, это дела давно прошедших дней, когда
компьютеры были большие, а АПИ маленькое и после 95 года категорически не
рекомендуется к использованию. Shell Execute наше все.
user51 (2010-05-27 11:47:00) [7]Дмитрий Т
спасибо работает
реализация
winexec(pchar('c:\file.exe'),0);
Anatoly Podgoretsky (2010-05-27 11:46:00) [8]> user51 (27.05.2010 11:15:00) [0]
Что то ты не всю правду говоришь.
Leonid Troyanovsky (2010-05-27 11:25:00) [9]
> user51 (27.05.10 11:15)
> его работы (запустить и работать дальше). В моей реализации
> через winexec(namefile,0))
Реализацию - в студию.
--
Regards, LVT.
Дмитрий Т (2010-05-27 11:22:00) [10]что-то типа того, видимо?
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;
Писал давно, еще до чтения Рихтера. Но вроде все верно.