Utilizando TDosCommand. Dos Command 2.0 es un componente gratuito de Delphi. Lo podemos encontrar en Maxx's Delphi Site, y es libre de descarga. El componente es bastante fácil de instalar y de ejecutar, y mediante 3 líneas de código podemos capturar el stdout en un TMemo. El ejemplo que propongo es el siguiente:
Primero, podemos crear un bpl e instalar el fichero DosCommand.pas como un package. Pero también podemos crear un proyecto nuevo y agregarlo como fuente externa. Funciona de las 2 maneras. En ese caso, creo un nuevo proyecto, con un botón y un TMemo, y luego con el DosCommand agregado en mi proyecto escribo:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPi, DOsCommand, ExtCtrls;
type
TFTest = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FTest: TFTest;
dos: TDosCommand;
implementation
{$R *.dfm}
procedure TFTest.Button1Click(Sender: TObject);
begin
dos.CommandLine := 'java -version';
dos.Execute;
end;
procedure TFTest.FormCreate(Sender: TObject);
begin
memo1.Clear;
dos := TDosCommand.create(self);
dos.OutputLines := memo1.lines;
end;
procedure TFTest.FormDestroy(Sender: TObject);
begin
FreeAndNil(dos);
end;
end.
una vez escribo el comando del cual quiero capturar su salida, le doy al botón get et voilà:
Aquí os dejo la aplicación de muestra ThundaxSTDOUT.exe, donde he puesto una textbox para entrar el comando que queráis. Aquí os dejo una muestra de la ejecución de un comando:
En la web de Lazarus, también he encontrado un componente llamado TProcess, que permite capturar la salida de un programa casi de la misma manera, utilizando un TStringList. Pero no acaba de funcionar. Os dejo los enlaces por si queréis indagar en el tema.
No comments:
Post a Comment