![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Запуск двух программ с ожиданием завершения поднимал тему здесь, написал рабочий код по примерам. Опять же повторюсь, я не программист, работаю в совсем другой сфере ИТ. Просьба глянуть и оценить, что требуется исправить убрать.
Код:
program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Winapi.Windows, shellapi; var STI: TStartUpInfo; App, Param, RunLine:String; App2, Param2, RunLine2:String; PI: TProcessInformation; begin try { TODO -oUser -cConsole Main : Insert code here } begin //FillChar(STI, SizeOf(TStartUpInfo), #0); //FillChar(STI, SizeOf(TProcessInformation), #0); STI.cb := SizeOf(TStartupInfo); STI.dwFlags := CREATE_NO_WINDOW; STI.wShowWindow := SW_Show; App:='C:\Windows\System32\cmd.exe'; Param:='/?'; RunLine:=Format('"%s" %s', [App, Param]); App2:='C:\Windows\System32\calc.exe'; if CreateProcess(Pointer(App), Pchar(RunLine), nil, nil, False, CREATE_NEW_CONSOLE OR NORMAL_PRIORITY_CLASS, nil, nil, STI, PI) then begin WaitForSingleObject(PI.hProcess, INFINITE); //ShellExecute(0, 'open','calc.exe', nil, nil, 0); CreateProcess(Pointer(App2), Pchar(app2), nil, nil, False, CREATE_NEW_CONSOLE OR NORMAL_PRIORITY_CLASS, nil, nil, STI, PI); Exit; end else exit; end; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. 1. При запуске видно окно программы лаунчера, как сделать, чтобы окошка приложения не было? 2. Для запуска второй программы, что лучше использовать CreateProcess или ShellExecute? 3. Какие параметры использовать, если требуется без оконный запуск приложений App, App2? 4. Pointer(App) ставить или просто в nil убрать? 5. Ну и сам код, насколько криво он написан, что требует редакции ![]() |
#2
|
||||
|
||||
![]() ищи на форуме более удачные примеры, в этом много косяков, даже лень все описывать
![]() Пишу программы за еду. __________________ |