Показать сообщение отдельно
  #4  
Старый 18.05.2015, 13:55
Аватар для Alloc
Alloc Alloc вне форума
Начинающий
 
Регистрация: 17.09.2014
Сообщения: 104
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо за подсказки.

Нашел в интернете небольшой код который мне подходит. Так как мои познания в программировании пока не столь значимы, я прошу вас мне помочь немного подредактировать ниже следующий код.. после запуска второго приложения - первое ждет когда оно завершится и при этом зависает когда с ним взаимодействуешь.. как этого избежать?

Код:
 function StartFileAndWait(CommandString: string): boolean;      //âõîä - êîìàíäà çàïóñêà
var
	si: TStartupInfo;
	pi: TProcessInformation;
begin
	Result := False;
	ZeroMemory( @si, sizeof( si ) );
	si.cb := SizeOf( si );
	if not CreateProcess( nil, // No module name (use command line).
		PChar( CommandString ), // Command line.
		nil, // Process handle not inheritable.
		nil, // Thread handle not inheritable.
		False, // Set handle inheritance to FALSE.
		0, // No creation flags.
		nil, // Use parent's environment block.
		nil, // Use parent's starting directory.
		si, // Pointer to STARTUPINFO structure.
		pi ) // Pointer to PROCESS_INFORMATION structure.
	then
	begin
    result:=false;
		Exit;
	end;
	WaitForSingleObject( pi.hProcess, INFINITE );
	CloseHandle( pi.hThread );
	CloseHandle( pi.hProcess );
  Application.BringToFront;
  Result := True;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  if StartFileAndWait('cmd.exe') then ShowMessage('Process terminated');
end;

Заранее спасибо!
Ответить с цитированием