Ver Mensaje Individual
  #3  
Antiguo 16-11-2009
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Reputación: 18
aeff Va camino a la fama
Saludos colega, bueno, no puedo alcanzar el link que me recomiendas: GetDosOutput, por algunas razones, pero he intentando hacer algo y se me ocurrió hacer lo siguiente:

Código Delphi [-]
program Project1;
{$APPTYPE CONSOLE}
uses
  Windows,
  SysUtils;

var
  vSA: TSecurityAttributes;
  vSI: TStartupInfo;
  vPI: TProcessInformation;
begin
  // Imprimimos un texto para adornar el programa...
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
  WriteLn('[Consola AEFF]');
  WriteLn('Presione una tecla para ejecutar el comando LABEL en esta consola.');
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
  ReadLn;

  {*** Aqui comienza la fiesta}

  // Registro para el Atributo de Seguridad
  vSA.nLength               := SizeOf(TSecurityAttributes);
  vSA.lpSecurityDescriptor  := nil;
  vSA.bInheritHandle        := true;

  // Registro para la Información de Inicio del Proceso
  FillChar(vSI, SizeOf(TStartupInfo), #0);
  vSI.cb      := SizeOf(TStartupInfo);
  vSI.dwFlags := STARTF_USESTDHANDLES;
  vSI.hStdInput   := GetStdHandle(STD_INPUT_HANDLE);
  vSI.hStdOutput  := GetStdHandle(STD_OUTPUT_HANDLE);

  // Creamos el proceso
  CreateProcess(Nil, 'help', @vSA, @vSA, true, 0, Nil, Nil, vSI, vPI);

  ReadLn;
end.

pero ahora el problema es ¿como puedo leer los datos de la consola? y en un momento dado como puedo dar entrada de los datos a través de algún codigo sin tener que hacerlo via teclado.

espero que me puedan ayudar, mil gracias nuevamente.
aeff!
Responder Con Cita