Sem Göksu
Sem Göksu
Yazılım · Yolculuk · Fenerbahçe
.NET Framework

Visaul Studio ile CommandLine(CMD) Aracını Çalıştırmak

Merhaba arkadaşlar bu makalemizde Visaul Studio içerisinde commandline aracının nasıl çalıştırıldığına bakacağız.

12 Ocak 2007 2 dk okuma 187 5
Merhaba arkadaşlar bu makalemizde Visaul Studio içerisinde commandline aracının nasıl çalıştırıldığına bakacağız.

Giris

Windows uygulamaları içinde Dos Command Line aracı üzerinde yapabildigimiz herseyi 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 baslatmak ve durdurmamamıza, remote processlere ve locale erismemize izin veren bir classtır. Kullanımı asagıdaki gibidir.

VB

Public Class Process Inherits Component

Dim instance As Process

C#

Public Class Process: Component
Process instance;

Process, PC üzerinde çalısarak bir processe erismeyi saglar. Bir Process belirli zamanlarda bir uygulamayı çalıstırır. Process görüntüleme ve kontrol uygulamalarını baslatmak ve durdurmak için çok kullanıslıdır. Process componenetini kullanarak yeni bir process baslatabilir yada çalıstırılacak processlerin listesini belirleyebilirsiniz.

Evet arkadaslar Projemizde kullanacagımız namespace ve sınıfımızı tanıdıktan sonra örnegimize geçelim.

Örnek

Örnek uygulamamızda Command Line aracındaki gibi komutları yazıp çalıstıracagı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ıstıracagız(Simdilik aklıma gelenler bunlar).

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

Projemizi olusturduktan sonra formumuza,

1 Button ve 2 de textbox ekleyelim. 1. Textbox'a cmd üzerinde yazdıgımız komutları yazacagız ve 2. textboxda da sonucu ekrana yazdıracagız.

Evet yukarıdada belirttigim gibi butona tıkladıgımızda CMD'deki gibi komutumuz çalıstırılacak. Simdi 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ıstırılacak file

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

p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//Komut çalıstıgı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ıstırılır

string output = p.StandardOutput.ReadToEnd();//Çalısan 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. Baska bir komut deneyelim. Kendimizi pingleyelim.

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

Evet gördügümüz gibi basarılı bir sekilde vs.net içerisinde cmd de yaptıgımız tüm islemleri yaptık.

Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı 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

Etiketler: #C# #.NET Framework
Paylaş:

Yorumlar (5)

G
Galip Güçlüoğlu 28 Eki 2009 12:57

Çok yararlı bir yazı olmuş. Çok Teşekkürler...

M
Mustafa Balta 18 Eyl 2011 22:38

Hocam cmd yi yönetici olarak nasıl çalıştırabiliriz.

S
semih yılmaz 13 Ara 2018 09:41

Yazmış olduğunuz kod çok güzel ve yararlı fakat "p.Start" ifadesi butonun click özelliğinde olduğundan her "run" butonuna basıldığında form yeniden başlatılmaktadır. Bu da programın düzgün çalışmamasını sağlamakta. Bilginize :)

K
KAOS HACKER 21 Haz 2020 12:49

Bana da öretirmisiniz lütfen ??????????

T
turknet33 13 Ara 2020 20:47

butona hangi kod girilecek onu yazmamışsın

Yorum bırak

* Yorumlar moderasyon sonrası yayınlanır. E-posta gizli tutulur.