24 Şubat 2015 Salı

c# administrator yetkisi kontrol

if (IsAdministrator() == false)
{
    // Restart program and run as admin
    var exeName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
    ProcessStartInfo startInfo = new ProcessStartInfo(exeName);
    startInfo.Verb = "runas";
    System.Diagnostics.Process.Start(startInfo);
    Application.Current.Shutdown();
    return;
}

private static bool IsAdministrator()
{
    WindowsIdentity identity = WindowsIdentity.GetCurrent();
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
---------------------

var processStartInfo = new ProcessStartInfo(@"C:\Windows\Notepad.exe");
processStartInfo.Verb = "runas";
try
{
    Process.Start(processStartInfo);
}
catch (Win32Exception ex)
{
    MessageBox.Show(ex.ToString(), "Run As",
        MessageBoxButtons.OK, MessageBoxIcon.Error);

}



---------------------

if (Environment.OSVersion.Version.Major >= 6)
{
    processStartInfo.Verb = "runas";
}

20 Şubat 2015 Cuma

C# Domain Whois

private void Form1_Load(object sender, EventArgs e)
 {
 string txtResponse = String.Empty;
 string strResponse = String.Empty;
TcpClient tcpWhois = new TcpClient("whois.internic.net", 43);
 NetworkStream nsWhois = tcpWhois.GetStream();
 BufferedStream bfWhois = new BufferedStream(nsWhois);
StreamWriter swSend = new StreamWriter(bfWhois);
 swSend.WriteLine("mustafaydemir.com");
 swSend.Flush();
StreamReader srReceive = new StreamReader(bfWhois);
while ((strResponse = srReceive.ReadLine()) != null)
 {
 txtResponse += strResponse + "\r\n";
 }
tcpWhois.Close();
 richTextBox1.Text = txtResponse;
}

C# Array list Kullanımı

Tanımlama
ArrayList tanımlama şekli: dizi adımız elemanlar olsun.
ArrayList elemanlar = new ArrayList();
Değer Atama
Örneğin textBox1 den aldığımız veriyi elemanlar dizisine aktarma şu şekilde:
elemanlar.Add(textBox1.Text);
Sıralama
Aldığımız bu veriyi listBox1 listesine şu şekilde aktarabilir.
foreach (string item in elemanlar)
{
listBox1.Items.Add(item);
}

Düzgün Sıralama
Dizide bulunan bir çok elemanı alfabetik ve sayisal olarakta sıralayabiliriz. Örneğin diziye sırasıyla d,e,u,t harfleri girildiyse sıralamadan sonra dizinin 0. değeri d, 1. değeri e, 2. değeri t, ve 3. değeri u olur.
elemanlar.Sort();
Tersten Sıralama
Dizide bulunan bir çok elemanı son halindekinden tersi şekilde sıralayabiliriz. Örneğin son sıralama d,e,t,u ise sıralamadan sonra dizinin 0.değeri u, 1.değeri t, 2.değeri e ve 3.değeri d olur.
elemanlar.Reverse();
Eleman Sayısı
Eğer dizideki eleman sayısını MessageBox kutusunda göstermek istiyorsak Count u kullanabiliriz.
MessageBox.Show(elemanlar.Count.ToString() + " adet eleman vardır.");
Tüm Elemanları Silme
Dizideki elemanların tamamını silmek istiyorsak bu kodu kullanabiliriz.(Dizilerde ortadan kalkar, bu Array da mümkün değildir. Arrayda silme işlemi yaptığımızda dizi aynı kalır, sadece dizinin değeri null değerini alır.)
elemanlar.Clear();
İndex Numarası
Dizi de aranılan bir değerin index numarasınıda IndexOf metodu ile öğrenebiliriz. Bu index numarasını bi integer değere atayalım.
int a;
a=elemanlar.IndexOf(textBox1.Text); //aranılacak ifade textBox1 a giriliyor.
Eleman Silme
eleman silmek için remove kodu kulanılır. Örneğin; listbox1 den seçtiğimiz bir dizi elemanını silebilir.(mesela 3.değer silindi ise 4.değer 3. değerin yerine geçer, 5 te 4ün.)
elemanlar.Remove(listBox1.SelectedItem);
ArrayList Kopyalama
ArrayList olarak tanımladığımız kopyaisimler dizisine elemanlar dizisini kopyalayabiliriz.
ArrayList kopyaisimler = elemanlar;
Araya Değer Girme
ArrayList dizisinde elemanlar arasına değer girebiliriz. Örneğin 3. index herhangi bir değer girilebilir. Bu durumda 3 index numaralı dizide girdiğimiz değer olur. Yeni değeri girmeden önceki 3 indexli değerimiz 4. index numaralı diziye atlar.
elemanlar.Insert(3, textBox1.Text); // 3 index numaralı değere textBox1 e girdiğimiz değer atanacak. 3 deki değer 4 e geçecek.
kaynak: http://blogsahin.blogspot.com.tr/2010/10/csharp-arraylist-islemleri.html

C# textbox alt alta itemleri diziye atama

Birden çok alt alta olan verileri girilmesi durumunda bunları tek tek alıp işleme sokmamız gerekebilir.Genelde bir dosyadan çekilsede bazen böle bişi denk gelebilir.

 string Domains = this.textBoxDomains.Text;
 string[] ArrayDomain = Domains.Split(new string[] {"\r\n"},StringSplitOptions.RemoveEmptyEntries);