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

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

Как вызвать из своей программы 16-битное приложение с пар-ми? [D6, WinXP]


SH ©   (2003-05-29 14:10:00) 

Долго мучался с WinExec(...), так она только 32-битные приложения запускала с параметрами, а на старые или ругалась или запускала без учёта параметров.
Задача состояла в запуске консольного компилятора С- bcc.exe с параметром в виде пути к исходнику: с:\bc5\projects\project5\sample5.cpp. Итоговая командая строка должна быть вида:
"c:\bc5\bin\bcc.exe с:\bc5\projects\project5\sample5.cpp"
Эта строка будучи приведена к PChar, является первым параметром в WinExec(). По Delfi Help всё должно быть в ажуре, но не пашет.
В Delfi Help также предлагают более продвинутый вариант запуска внешних приложений - через создание процесса. Если кто владеет этой фичей, объясните плис-сс подробней, а то фишка эта навороченая, а Help у меня - чистяк инглиш, где я плаваю как г... впрочем не буду о грустном.


SH   (2003-05-29 14:49:00) [1]

За пример спасибо. А что означает каждый из параметров в CreateProcess() и какие значения может принимать? Мсорри мэ, я знаю что существует Help, но инглиш... (см. выше).


Бобко Сергей   (2003-05-29 14:35:00) [2]

Ну вот тебе небольшой пример:
function CreateProcess_(Path:PChar):boolean;
var si : Tstartupinfo;
p : Tprocessinformation;
begin
Result:=False;
FillChar( Si, SizeOf( Si ) , 0 );
with Si do begin
cb := SizeOf(Si);
dwFlags := startf_UseShowWindow;
wShowWindow := SW_NORMAL;
end;
if Createprocess(nil,Path,nil,nil,false,Create_default_error_mode,nil,nil,si,p) then Result:=True;
end;


Novichek   (2003-05-29 14:21:00) [3]

ShellExecute(0, nil,"имя_файла с параметрами", nil,nil, SW_SHOWNORMAL);


Наверх

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