MS-DOS para texto

Delphi

06/01/2004

Alguém sabe se tem como pegar o conteúdo de uma janela do tipo MS-DOS e transformá-lo para texto? Parece loucura, né?! Mas é realmente o que preciso... agradeço a atenção!

Pedro


Peununes

Peununes

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

06/01/2004

Colega,

Encontrei este código na Web mas não funcionou com o W2K. Se tiver o W98, faça um teste:

var
  HCon: THandle;
  CSBI: TConsoleScreenBufferInfo;
  Line: String;
  Lines: TStringList;
  i: Integer;
  StartPos: TCoord;
  BytesRead: Cardinal;

begin
  HCon := GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(HCon, CSBI);
  Lines := TStringList.Create;
  try
    StartPos.X := 0;
    for i := 0 to CSBI.dwSize.Y - 1 do begin
      SetLength(Line, CSBI.dwSize.X);
      StartPos.Y := i;
      ReadConsoleOutputCharacter(HCon, PChar(Line), CSBI.dwSize.X+1,
StartPos, BytesRead);
      Lines.Add(Line);
    end;
    Clipboard.AsText := Lines.Text;
  finally
    Lines.Free;
  end;
end;



GOSTEI 0
Nildo

Nildo

06/01/2004

Aroldo, essa sua função funciona assim:

Se você estiver fazendo uma aplicação do tipo Console, ela vai copiar para a area de transferencia o conteudo de sua janela Console.


GOSTEI 0
Cebikyn

Cebikyn

06/01/2004

Tem um componente, o TDOSCommand, que não só pega o conteúdo da janela, como tb envia texto à mesma, se necessário. O componente (com código fonte) pode ser obtido em:

[b:68534a43db]TDOSCommand[/b:68534a43db]
http://maxxdelphisite.free.fr/doscmd.htm

O texto, na forma de string, é recebido no evento OnNewLine do componente.


GOSTEI 0
Peununes

Peununes

06/01/2004

Deu o seguinte erro:

[Error] Unit1.pas(48): Undeclared identifier: ´Clipboard´
[Fatal Error] Project2.dpr(5): Could not compile used unit ´Unit1.pas´


Claro, não está reconhecendo o argumento ´Clipboard´. Será que tem que ser escrito de uma outra forma? Tentei mandar o texto para um objeto Memo, mas não funcionou...

Obrigado

Pedro


GOSTEI 0
POSTAR