Chamar uma aplic console de outra aplic console

10/01/2006

0

Eu criei uma aplicação console que chama uma outra aplicação console usando CreateProcess. A segunda aplicação necessita herdar o console da aplicação que chama.
Mas quando eu finalizo a aplicação pai, a segunda aplicação perde seu console, a aplicação ainda consta do Process do Windows mas não escreve e não lê mais do console.
Isto é um problema, porque eu necessito rodar esta aplicação em uma sessão do telnet e eu não posso criar um console novo para a segunda aplicação.
Alguem ai sabe me ajudar?

Grato

Cristiano

Codigo usado pra chamar a aplicação filho:
---------------------cut herre------------------------------
procedure ExecProgram(const ProgramName, Parameters: String; State: TExecProgramState);
var
Security : TSecurityAttributes;
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CreateOK: Boolean;
Apprunning : DWord;
begin
//Security
Security.nlength := SizeOf(TSecurityAttributes) ;
Security.binherithandle := true;
Security.lpsecuritydescriptor := nil;
//Startup Info
GetStartupInfo(StartInfo);
StartInfo.cb := SizeOf(TStartupInfo);
StartInfo.dwFlags := STARTF_USESTDHANDLES+
STARTF_USESHOWWINDOW;
StartInfo.wShowWindow := SW_HIDE;
StartInfo.hStdInput := Console.InputHandle;
StartInfo.hStdOutput := Console.OutputHandle;

//ProcInfo
FillChar(ProcInfo,SizeOf(TProcessInformation),#0);

CreateOK := CreateProcess(nil, PChar(ProgramName+´ ´+Parameters),
@Security, @Security,True,
NORMAL_PRIORITY_CLASS,
nil, nil, StartInfo, ProcInfo);

if Not CreateOK then
begin
raise Exception.Create(´Unable to run ´+ProgramName);
end;
end;
---------------------cut herre------------------------------


Criscarneirocwb

Criscarneirocwb

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar