Minggu, 30 April 2023

Menjalankan Perintah CMD dan Mendapatkan Ouput Menggunakan Lazarus

Lazarus Windows -  Menggunakan perintah command line CMD masih lazim digunakan dalam dunia pemrograman untuk mengeksekusi printah sederhana. Windows masih menyediakan fasilitas ini program sederhana seperti menjalankan sebaris perintah atau beberapa baris dalam sebuah batch file. Bahkan sistem operasi Mac tidak meninggalkan penggunakan command line.

Lazarus Pascal memberikan kemampuan untuk membuat program yang dapat menjalankan perintan CMD. Namun saya tidak hanya ingin menjalankan perintah command line saja, tapi perlu mendapatkan output setelah menjalankan perintah CMD untuk digunakan sebagai data program. Sebagai contoh jika kita ingin membuat program ping. Cara termudah adalah menggunakan perintah ping melalui CMD dan mengambil outputnya.

Kamu membutuhkan unit Process untuk mengeksekusi perintah CMD. Ada dua cara yang saya gunakan untuk contoh program menjalankan perintah CMD yang tidak mengandung argumen.

Perintah usang tapi masih dapat digunakan

Perintah yang lebih baik dari commandLine

Apakah perintah CMD yang tidak mengandung argumen?
Perintah yang tidak menghasilkan pertanyaan atau syarat berikutnya, seperti ping atau dir. Lantas contoh printah yang mengandung argumen? ftp, perintah ini akan menghasilkan pertanyaan username dan password yang harus kami berikan.

Berikut contoh program menjalnkan perintah CMD menggunakan Lazarus versi 2.2.4



Menggunakan Tprocess.Executable, prosedur ini menjalankan perintah ping dan menampilkan hasil pada memo1.

procedure TForm1.Button1Click(Sender: TObject);

Process2: TProcess;

Output: TStringList;

begin

Process2 := TProcess.Create(nil);

try

Process2.Executable := 'C:\Windows\System32\ping.exe';

Process2.Parameters.Add('-n');

Process2.Parameters.Add('4');

Process2.Parameters.Add('www.google.com');

Process2.Options := [poUsePipes, poWaitOnExit];

Process2.Execute;

Output := TStringList.Create;

try

Output.LoadFromStream(Process2.Output);

Memo1.Lines:= Output;

finally

Output.Free;

end;

finally

Process2.Free;

end;

end;

Menggunakan TProcess.CommandLine, kamu mengisikan perintah dir pada kolom Edit1 sebelum menekan Button2.

procedure TForm1.Button2Click(Sender: TObject);

var

Process2: TProcess;

Output: TStringList;

Ss: string;

begin

Memo1.Clear;

Ss:= 'C:\Windows\System32\cmd.exe /c ' + Edit1.Text;

Output := TStringList.Create;

Process2 := TProcess.Create(nil);

try

process2.ShowWindow:= swoNone;

process2.CommandLine:= Ss;

Process2.Options := [poUsePipes, poWaitOnExit];

Process2.Execute;

try

Output.LoadFromStream(Process2.Output);

Memo1.Lines:= Output;

finally

Output.Free;

end;

finally

Process2.Free;

end;

end;

 

Tidak ada komentar:

Posting Komentar

Digital Audio Amplifier PAM8403 and Get Datasheet for Your Hobby

  The PAM8403 is a miniature digital audio amplifier that has gained popularity among DIY enthusiasts, hobbyists, and engineers for its exc...