Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как из 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;


Писал давно, еще до чтения Рихтера. Но вроде все верно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо