Delphi에서 오랫동안 실행중인 백그라운드 프로세스를 시작하고 싶습니다. 프로세스를 독립적으로 실행하고 싶지만 먼저 프로세스가 시작되었는지 확인하고 싶습니다.장기 실행 백그라운드 프로세스 시작 및 상태 확인
시작시 문제가 발생하면 standardErr에 기록 된 출력을 캡처하여 기록하려고합니다. 백그라운드 프로세스가 정상적으로 시작되면 내 프로그램이 종료되어 생성 된 프로세스가 실행되도록 유지해야합니다.
들의 유사 코드는 다음과 같이 될 것이다 : 나는 몇 가지 (WinExec, CreateProcess를,에서 ShellExecute, JclMiscel)을 검토 한
process:=RunProgramInBackground('someCommand.exe');
sleep(1000); // Wait a bit to see if the program started OK
if process.Finished and process.ExitCode=FAIL then
Raise Exception.Create(process.ErrorStream);
process.Dispose; // Close any connection we may still have to the running process
Program.Exit; // Background process keeps running
하지만 난 노력하고있어에 대한 예제를 찾을 수 없습니다 할 것. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 델파이 2010
백그라운드 프로세스를 사용하고
는나는 소스가없는 제 3 자 프로그램입니다.
'RunProgramInBackground가'(당신이 'somecommand'에 코드를 가지고 있다고 가정) 스레드에서 구현 될 수있다 : 여기
내가 무슨 짓을? –
이 질문은 분명히 필요합니다. "someCommand.exe"가 소스를 가지고 있는지 아닌지? 그렇지 않으면 프로세스를 시작한 다음 종료 코드를 캡처하고 오류가없는 경우 완료 될 때까지 기다리는 것입니다. 당연히 스레드에서이 작업을 수행 할 수 있지만 원하는 작업을 많이 수행하면보다 구체적인 작업을 수행 할 수 있습니다. – Glenn1234
@ No'am 그것은 제 3 자 실행 파일입니다. 나는 소스 코드가 없다. – awmross