Visaul Studio ile CommandLine(CMD) Aracını Çalıştırmak
12.01.2007 00:00:00
Merhaba arkadaşlar bu makalemizde Visaul Studio içerisinde commandline aracının nasıl çalıştırıldığına bakacağız.
Puan:
     

Giriş

Windows uygulamaları içinde Dos Command Line aracı üzerinde yapabildiğimiz herşeyi yapabiliriz. Windows formaları içerisine bi takım kodlar ekleyerek CommandLine aracını kullanmak oldukça basitdir. Bu kodları System.Diagnostics NameSpace’i içerisindeki Process classının altında bulabiliriz.

System.Diagnostics

Process Class 

Local Sistem processlerini başlatmak ve durdurmamamıza, remote processlere ve locale erişmemize izin veren bir classtır. Kullanımı aşağıdaki gibidir.

VB

Public Class Process Inherits Component

Dim instance As Process

C#

Public Class Process: Component
Process instance;

Process, PC üzerinde çalışarak bir processe erişmeyi sağlar. Bir Process belirli zamanlarda bir uygulamayı çalıştırır. Process görüntüleme ve kontrol uygulamalarını başlatmak ve durdurmak için çok kullanışlıdır. Process componenetini kullanarak yeni bir process başlatabilir yada çalıştırılacak processlerin listesini belirleyebilirsiniz.

Evet arkadaşlar Projemizde kullanacağımız namespace ve sınıfımızı tanıdıktan sonra örneğimize geçelim.

Örnek

Örnek uygulamamızda Command Line aracındaki gibi komutları yazıp çalıştıracağız. Örnek vermek gerekirse Ipconfig yazıp ip bilgimizi, ping 127.0.0.1 yazıp kendi makinamızı pinglememizi, notepad yazıp Notepad’i çalıştıracağız(Şimdilik aklıma gelenler bunlar).

Bu açıklamalardan sonra Visual Studio üzerinde bir windows uygulaması açalım.

Projemizi oluşturduktan sonra formumuza,

1 Button ve 2 de textbox ekleyelim. 1. Textbox’a cmd üzerinde yazdığımız komutları yazacağız ve 2. textboxda da sonucu ekrana yazdıracağız.

Evet yukarıdada belirttiğim gibi butona tıkladığımızda CMD’deki gibi komutumuz çalıştırılacak. Şimdi bu söylediklerimizi koda dökelim.

C#

private void btnRun_Click(object sender, EventArgs e)

{

System.Diagnostics.Process p = new System.Diagnostics.Process ();//process’in instancesini aldık

p.StartInfo.FileName = "cmd" ;//Çalıştırılacak file

p.StartInfo.Arguments = "/c " + textBox1.Text;//file içerisine gönderilecek arguments

p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle .Hidden;//Komut çalıştığında Cmd penceresinin açılmasını engelledik

p.StartInfo.CreateNoWindow = true ;//Pencere Açılmasını engeller

p.StartInfo.RedirectStandardOutput = true ;

p.StartInfo.UseShellExecute = false ;

p.Start();//process Çalıştırılır

string output = p.StandardOutput.ReadToEnd();//Çalışan Processin sonucu

textBox2.Text = output;//Sonuç textboxa yazılır

}

VB#

Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click

Dim p As New System.Diagnostics.Process()

p.StartInfo.FileName = "cmd"

p.StartInfo.Arguments = "/c " + textBox1.Text

p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden

p.StartInfo.CreateNoWindow = True

p.StartInfo.RedirectStandardOutput = True

p.StartInfo.UseShellExecute = False

p.Start()

Dim output As String = p.StandardOutput.ReadToEnd()

textBox2.Text = output

End Sub

Evet kodumuzu yazdık ve artık deneyebiliriz.

Ipconfig yazdık ve sonucumuzu bizim arayüzümüze verdi. Başka bir komut deneyelim. Kendimizi pingleyelim.

Son olarak Hesap makinasınıda çalıştıralım : )

Evet gördüğümüz gibi başarılı bir şekilde vs.net içerisinde cmd de yaptığımız tüm işlemleri yaptık.

Bu makalenin de sonuna geldik, başka bir makalede görüşmek üzere başarı ve iyi günler dilerim.

Sem GÖKSU
MCP | MCAD.NET | MCTS

Örnek Kodlar için mail adresimi kullanabilirsiniz

semgoksu@semgoksu.com

Kaynaklar

http://msdn.microsoft.com

 
Puan: