En Delphi un programilla como este debería cubir lo que necesitas:
Código Delphi
[-]
program PLeerEntradaStd;
{$APPTYPE CONSOLE}
{$R *.res}
uses
Vcl.Forms, Winapi.Windows, System.SysUtils, System.Classes, VCL.Dialogs;
var
Buffer: array[0..1000] of Byte;
StdIn: TStream;
Count: Integer;
i: integer;
Str: string;
begin
try
StdIn := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE));
Count := StdIn.Read(Buffer, 1000);
StdIn.Free;
for i := 0 to (Count - 1) do begin
Str := Str + Char(Buffer[i]);
end;
ShowMessage(Str);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Una ejecución como esta devolverá el valor leído: