Archive: C#

Kısayol Oluşturma- Ekran Görüntüsü Yakalama

Kısayol Oluşturma

Bir buton ekliyorsunuz ve butonun içine bu kodu yazın.

using IWshRuntimeLibrary;
//////////////////////////////////////////////////////////////////////////////////////////
private void button1_Click(object sender, EventArgs e)
{
WshShell shell = new WshShell();
IWshShortcut MyShortcut;
//  [UserName] Bilgisayarın kendi kullanıcı adını yazacaksınız.

MyShortcut = (IWshShortcut)shell.CreateShortcut(@"C:\Documents and Settings\[UserName]\Start Menu\Programs\MyShortcut.lnk");
MyShortcut.TargetPath = Application.ExecutablePath;
MyShortcut.Description = "Launch the App!";
// MyShortcut.IconLocation = [IconPath]; // [IconPath] - Kısaylun varsa resim yolunu yazın

MyShortcut.Save();
}

Ekran Görüntüsü Yakalama

using System.Drawing.Imaging;
using System.Threading;

///////////////// Declarations ////////////////////////
ImageFormat img; Bitmap bt; Graphics screenShot;

///////////////////// Button1 /////////////////////////////
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
this.Hide();
// This gives time to the Form to hide before it takes the screenshot. 500 miliseconds are enough.
Thread.Sleep(500);
// Set the image to the size of the screen.
bt = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
// Creates the graphic object for the image (bt).
screenShot = Graphics.FromImage(bt);
// Takes the screenshot.
screenShot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size,

CopyPixelOperation.SourceCopy);
switch (saveFileDialog1.FilterIndex)
{
case 0: img = ImageFormat.Bmp; break;
case 1: img = ImageFormat.Png; break;
case 2: img = ImageFormat.Jpeg; break;
}
// Saves the image.
bt.Save(saveFileDialog1.FileName, img);
// After the screenshot is taken the Form reappears.
this.Show();
}

C# İpuçları – Dosya ve Klasör Değişikliklerini İzleme – Listeleme

Konsol programı gibi çalışa bu kodlarla belirlediğiniz herhangi bir klasörde oluşan değişiklikleri alırsınız. Bu şekilde basit bir antivirüs programı bie yazılabilir.

DizinIceriginiListeyeEkle isimli fonksiyon üst main fonkisyonunda tanımladığınız klasörün içeriğini listeliyor.

DirectoryWatcher ise değişiklikleri izleyen fonksiyon. Klasör içinde yeni bir klasör veya dosya oluşturuğunuzda ve ya herhangi birini değğiştirdiğinizde bunu belirtiyor.

using System; 
using System.IO; 
using System.Threading;  
namespace ConsoleApplication1 {    
 class Program   
  {         
static void Main(string[] args)  
       {      
       // enable watching          
   string dizin ="C:\\Windows";     
        DirectoryWatcher(dizin);       
     DizinIceriginiListeyeEkle(dizin);         
     // again, stupid code to just keep the function alive       
      while (true) { Thread.Sleep(1000); 
}     
    }      
   public static void DizinIceriginiListeyeEkle(string dizin)      
   {          
    string[] dizindekiKlasorler = Directory.GetDirectories(dizin);  
            string[] dizindekiDosyalar = Directory.GetFiles(dizin);    
          foreach (string klasor in dizindekiKlasorler)     
        {                  DirectoryInfo dirInfo = new DirectoryInfo(klasor);  
                string klasorAdi = dirInfo.Name;                 
 DateTime olsTarihi = dirInfo.CreationTime;        
          Console.WriteLine(             "{0} ...{1}...", klasorAdi, olsTarihi);            
  }     
         foreach (string dosya in dizindekiDosyalar)    

         {                 
 FileInfo fileInfo = new FileInfo(dosya);           
       string dosyaAdi = fileInfo.Name;                
  long byteBoyut = fileInfo.Length;           
       DateTime olsTarihi = fileInfo.CreationTime;        
          Console.WriteLine(             "{0} ...{1} ...{2} ...", dosyaAdi, byteBoyut, olsTarihi);       
       }         
 }        
  public static void DirectoryWatcher(string directoryToWatch)    
     {             // check incoming arguments          
   if (string.IsNullOrWhiteSpace(directoryToWatch))  
               throw new ArgumentNullException("directoryToWatch");      
        // create a new FileSystemWatcher      
       FileSystemWatcher w = new FileSystemWatcher();       
       // set the directory to watch             w.Path = directoryToWatch;          
    //this is the heart - setup multiple filters        
     // to watch various types of changes to watch       
      w.NotifyFilter = NotifyFilters.Size |           
  NotifyFilters.FileName |             NotifyFilters.DirectoryName |    
         NotifyFilters.CreationTime;         
     // setup which file types do we want to monitor          
   w.Filter = "*.*";          
    // setup event handlers to watch for changes         
    w.Changed += watcher_Change;             w.Created += watcher_Change;      
       w.Deleted += watcher_Change;             w.Renamed += new RenamedEventHandler(watcher_Renamed);   
           // just some debugging        
     Console.WriteLine(             "Manipulate files in {0} to see activity...", directoryToWatch);    
          // enable watching by allowing events to be raised    
         w.EnableRaisingEvents = true;       
   }     
     static void watcher_Change(object sender,         FileSystemEventArgs e)       
  {         
    Console.WriteLine("{0} changed ({1})", e.Name, e.ChangeType);       
  }       
  static void watcher_Renamed(object sender,         RenamedEventArgs e)        
 {        
     Console.WriteLine("{0} renamed to {1}", e.OldName, e.Name);      

} 
}

Visual C# İpuçları – Sayı Kontrolü

Eğer girilen değerin sayımı yoksa string bir değermi olduğunu kontrol edeceğiz. Bunun için iki farklı yöntem yazıyorum. İki farklı yöntemle girilen bir verinin sayı olup olmadığını kontrol edeceğiz. Forksiyonlarımız IsNumeric ve IsNumeric2 isminde. İkiside aynı işi yapıyor. Sadece kısa ve basit olanı yazmamamın sebebi kısa olan IsNumeric2 fonksiyonu negatif(- eksi) değerlerde hatalı çalışması. Eğer programınızda sadece pozitif değerlerle ilgilenirseniz kısa olanı kullanabilirsiniz.
Program için yeni bir proje oluşturup bir textbox ve bir buton ekliyorum.
İlk Fonksiyonumuz. Bu biraz uzun ancak negatif değerler içinde kullanılabiliyor.

 public static bool IsNumeric(string NumToValidate)
        {
            if ((NumToValidate!=null))
            {
                double NumTest = new double();
                System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-US", true);

                return Double.TryParse(NumToValidate, System.Globalization.NumberStyles.Any, cultureInfo.NumberFormat, out NumTest);
            }
            else
            {
                return false;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (IsNumeric(textBox1.Text))
                MessageBox.Show("Bu bir sayıdır!");
           else
               MessageBox.Show("Bu bir sayı değildir!");
          }

Buda ikinci fonksiyonumuz. çok kısa ve basit bir yöntemle doğruluk kontrolü yapıyor fakat negatif değerlede çalışmıyor.

  public static bool IsNumeric2(string strToCheck)
        {
            return Regex.IsMatch(strToCheck, "^\\d+(\\.\\d+)?$");
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (IsNumeric2(textBox1.Text))
                MessageBox.Show("Bu bir sayıdır!");
           else
               MessageBox.Show("Bu bir sayı değildir!");
             }

Visual C# Örnekleri – ComboBox ve ListBox Kullanımı

Derslerimize kaldığımız yerden devam ediyoruz. Buğün yine çok önemli iki bileşeninin kullnımına ait temel örnekler teşkil eden bir ufak program yapacağız.
Bu dersimizde temel olark combobox’a ve listbox’a veri ekleme ve seçilen verileri alma yöntemlerini içeren basit bir örnek üzerinden anlatacağım.

Açtığmız yeni projemize ben iki adet combobox , bir adet listbox ve bir adet label ekledim.
İlk combobox a üstteki resimde görüldüğü gibi kod yazmadan edit item yoluyla il isimlerini ekledim. Bu yöntemle kolayca önceden belli verileri comboboxa ekleyebilirsiniz. Diğer yöntemde kodla ekleme. Kodla eklemek için.

comboBox2.Items.Add("Türkiye");

kodunu yazmanız yeterli.
Listboxa da aynı iki yöntemle kod ekleyebilirsiniz. ben projemda combobox tan seçilen itemleri listboxa ekledim. Listboxta seçilenleride label’de yazdırdıım.

Kodlarıda yazıyorum:

  public Form1()
        {
            InitializeComponent();
            comboBox2.Items.Add("Türkiye");
            comboBox2.Items.Add("Rusya");
            comboBox2.Items.Add("Almanya");
            comboBox2.Items.Add("Amerika");
            comboBox2.Items.Add("İran");
            comboBox2.Items.Add("Kazakistan");
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {

        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox1.Items.Add(comboBox2.SelectedItem);
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox1.Items.Add(comboBox1.SelectedItem);
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            label1.Text =  label1.Text + listBox1.SelectedItems[0].ToString();

        }

visual C# Örnekleri – CheckBox ve RadioButton Kullanımı

Daha önce kaldığımız yerden devam ediyorum. Çok basit ancak yine temel ve çok kullanılan iki bileşeni çok kısa şekilde kullanımı yazacağım. İkiside seçenekleri işaretlemekte kullanılan bileşenler. CheckBox ve RadioButton ları.

Bir önceki yazımda oluşturduğumuz c# projesine 3 adet Checkbox ve 3 adet RasioButon ekleyelim. Hangisinin seçili olduğunu görmek için 2 tane label ve 2 tanede buton ekliyoruz. Ben resimde görüldüğü gibi yerleştirdim.

Bunlara yazdığımız kodda söyle :

 private void button2_Click(object sender, EventArgs e)
        {
            //Butona basınca seçili checkbox isimleri yazacak.
            if (checkBox1.Checked)
                label2.Text = "Checkbox1 Seçili";
            if (checkBox2.Checked)
                label2.Text = "Checkbox2 Seçili";
            if (checkBox3.Checked)
                label2.Text = "Checkbox3 Seçili";
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            //checkBox1 değişme olayı. eğer checkbox1 seçilirse label2 de yazacak
            if (checkBox1.Checked)
                label2.Text = "Checkbox1 Seçili";

        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (radioButton1.Checked)
                label3.Text = "radioButton1 Seçili";
            if (radioButton2.Checked)
                label3.Text = "radioButton2 Seçili";
            if (radioButton3.Checked)
                label3.Text = "radioButton3 Seçili";
        }

Visual C# Örnekleri

visual c# 2010
Uzun zamandır yoğunluktan ötürü ara verdiğim c# çalışmalarına artık devam etmek istiyorum. 20 algoritma sorusu ve C# ile  cevabı konularıyla başta ben temel c# komut ve işlevlerini öğrendim ve öğrenmek isteyenler için yayınladım. Artık Visual C# çalışmalarına başlamak istiyorum. Zaten en başından beri amacım konsol uygulamalarını sadece dilin temel özelliklerini öğrenmek için kullanmaktı. Yoksa konsol da herhangi bir uygulama değildi.

Yapmak istediğim artık vakit buldukça tek bir uygulamada C# kontorollerinin hepsini kullanmak. Daha sonra işime yarabilecek herşeyi tek bir programda toplamak. Bulabildiğim kadar kontrol ve yöntemi denemye çalışacağım. Adım adım program gelişecek burda kodlarını resimleri ve uygulamayı yayınlayacağım. Takipte kalın… Hatta hemen uygulamamızı oluşturup ilk dersi başlatalım.

İlk önce yapacağımız iş bir form öğesi oluşturup buton, textbox, label ekleyip textbox a yazılanları label’e yazdırmak olsun.

Form özelliklerinden formumuzun görsel özelliklerini değiştirebiliriz.

Formun özelliklerini ayarladık. Daha sonra üstte dediğim gibi forma bir label bir inputbox vede bir buton ekliyoruz. Butona çift tıklayıp kod olarak aşağıdakileri yazacağız ;

private void button1_Click(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
}

Eğer herşey tamamsa projeyi çalıştırdığınızda aşağıdaki gibi görünecektir.

Butona basınca textbox ta yazılanlar labelde görünmeli. Bu ğünkü uygulamamız bu kadardı. Çok basit bir uygulama ancak en çok kullanılan 3 kontrolü kullandık. Bu uygulamayı kaydedin. Uygulamayı silmeden bir daha ki dersimiz de farklı özellikleri deneyeceğiz.

 

Arama Terimleri:

  • visual studio örnek projeler
  • visual studio c# örnekleri
  • visual c# örnekleri
  • visual studio örnekleri

20. Sorunun Cevabı

20. Girilen işlem türüne (* / – +) göre iki sayıyı işleme alıp sonucunu ekrana yazan programı yapınız. (Tüm soruları görmek için tıklayınız.)

//20. Girilen işlem türüne (* / - +) göre iki sayıyı işleme alıp sonucunu ekrana yazan programı yapınız. http://2gx.org
#region Kütüphane Dosyaları
using System;
using System.Collections.Generic;
using System.Text;
#endregion

namespace hesap_makinesi_2gx
{
    class Program
    {
        #region Bekleme Modu
        static void Bekle()
        {
            while (true)
            {
                // ...Loading
            }
        }
        #endregion

        #region Klavye girişleri
        static double TusAl()
        {
            return double.Parse(Console.ReadLine());
        }
        #endregion

        #region HESAP32 Anaekranı
        static  void AnaEkran()
        {
            Console.Clear();
            Console.WriteLine("---------------Hesap Makinesi jn7.net---------------");
            Console.WriteLine("[1] TOPLAMA");
            Console.WriteLine("[2] CIKARMA");
            Console.WriteLine("[3] CARPMA");
            Console.WriteLine("[4] BOLME");
            Console.WriteLine("[5] KAREAL");
            Console.WriteLine("[CTRL+C] CIKIS");

            switch (Convert.ToInt32(TusAl()))
            {
                case 1: Toplama(); break;
                case 2: Cikarma(); break;
                case 3: Carpma();  break;
                case 4: Bolme(); break;
                case 5: KareAl(); break;
                default: AnaEkran(); break; 
            }
        }
        #endregion

        #region HESAP32 İşlemler Bloğu
        static void Toplama()
        {
            try
            {
                Console.WriteLine("-----TOPLAMA ISLEMI-----");
                Console.WriteLine("1.Sayiyi gir= ");
                double s1 = double.Parse(Console.ReadLine());
                Console.WriteLine("2.Sayiyi gir= ");
                double s2 = double.Parse(Console.ReadLine());

                double sonuc = s1 + s2;
                Console.WriteLine("Sonuc= " + sonuc.ToString());
                Console.WriteLine("Ana Ekrana Donmek icin [ENTER]");
                Console.ReadLine();
                AnaEkran();
            }
            catch
            {
                Hata();
            }
        }

        static void Cikarma()
        {
            try
            {
                Console.WriteLine("-----CIKARMA ISLEMI-----");
                Console.WriteLine("1.Sayiyi gir= ");
                double s1 = double.Parse(Console.ReadLine());
                Console.WriteLine("2.Sayiyi gir= ");
                double s2 = double.Parse(Console.ReadLine());

                double sonuc = s1 - s2;
                Console.WriteLine("Sonuc= " + sonuc.ToString());
                Console.WriteLine("Ana Ekrana Donmek icin [ENTER]");
                Console.ReadLine();
                AnaEkran();
            }
            catch
            {
                Hata();
            }
        }

        static void Carpma()
        {
            try
            {
                Console.WriteLine("-----CARPMA ISLEMI-----");
                Console.WriteLine("1.Sayiyi gir= ");
                double s1 = double.Parse(Console.ReadLine());
                Console.WriteLine("2.Sayiyi gir= ");
                double s2 = double.Parse(Console.ReadLine());

                double sonuc = s1 * s2;
                Console.WriteLine("Sonuc= " + sonuc.ToString());
                Console.WriteLine("Ana Ekrana Donmek icin [ENTER]");
                Console.ReadLine();
                AnaEkran();
            }
            catch
            {
                Hata();
            }
        }

        static void Bolme()
        {
            try
            {
                Console.WriteLine("-----BOLME ISLEMI-----");
                Console.WriteLine("1.Sayiyi gir= ");
                double s1 = double.Parse(Console.ReadLine());
                Console.WriteLine("2.Sayiyi gir= ");
                double s2 = double.Parse(Console.ReadLine());

                double sonuc = s1 / s2;
                Console.WriteLine("Sonuc= " + sonuc.ToString());
                Console.WriteLine("Ana Ekrana Donmek icin [ENTER]");
                Console.ReadLine();
                AnaEkran();
            }
            catch
            {
                Hata();
            }
        }

        static void KareAl()
        {
            try
            {
                Console.WriteLine("-----KARE AL-----");
                Console.WriteLine("Karesi alinacak sayi gir= ");
                double s1 = double.Parse(Console.ReadLine());
                double sonuc = s1 * s1;
                Console.WriteLine("Sonuc= " + sonuc.ToString());
                Console.WriteLine("Ana Ekrana Donmek icin [ENTER]");
                Console.ReadLine();
                AnaEkran();
            }
            catch
            {
                Hata();
            }
        }

       #endregion

        #region HESAP32 Hata önleme kodu
        static void Hata()
        {
            Console.Clear();
            Console.WriteLine("COK BUYUK BIR SAYI YADA HARF GIRDINIZ");
            Console.WriteLine("PROGRAMIN DUZGUN CALISMASI ICIN DAHA DIKKATLI OLUN");
            Console.WriteLine("ANA EKRANA DONMEK ICIN BIR TUSA BASIN");
            Console.ReadLine();
            AnaEkran();
        }
        #endregion

        #region HESAP32 Anametod
        static void Main(string[] args)
        {
            //:Kodlar buraya 
            Console.Title = "HESAP MAKİNESİ --2gx.org-- c# Console Deneme";
            AnaEkran();
            Bekle();
        }
        #endregion
    }
}

18. Sorunun Cevabı

18. Fiyat ve KDV oranı ayrı ayrı girilen 5 malın toplam fiyatını hesaplayınız. (Tüm soruları görmek için tıklayınız.)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace kdvlitoplam
{
    class Program
    {
        static void Main(string[] args)
        {//18. Fiyat ve KDV oranı ayrı ayrı girilen 5 malın toplam fiyatını hesaplayınız. http://jn7.net/
            Console.WriteLine("Fiyat ve KDV oranı ayrı ayrı girilen 5 malın toplam fiyatını hesaplayınız. http://jn7.net/");
            int toplam_fiyat = 0;
            int brut_fiyat;
            for (int i = 0; i             {
                Console.WriteLine("{0}. ürünün fiyatını giriniz", i + 1);
                int urun_fiyat = Int32.Parse(Console.ReadLine());
                Console.WriteLine("{0}. ürünün kdv oranını giriniz", i + 1);
                int urun_kdv = Int32.Parse(Console.ReadLine());

                brut_fiyat = (((urun_fiyat * urun_kdv) / 100)+urun_fiyat) ;
                Console.Write(" brut  fiyat=" + brut_fiyat);
                toplam_fiyat = toplam_fiyat + brut_fiyat;
                Console.WriteLine(" toplam fiyat=" + toplam_fiyat);               
            }
            Console.Write(" toplam fiyat="+ toplam_fiyat);
            Console.ReadKey();
        }
    }
}

17. Sorunun Cevabı

17. Haftanın günü (Pazartesi, Salı, …) girilince, o günün haftanın kaçıncı günü olduğunu bulan programı yapınız.(Tüm soruları görmek için tıklayınız.)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace haftanıngunleri
{
    class Program
    {
        static void Main(string[] args)
        {//17. Haftanın günü (Pazartesi, Salı, …) girilince, o günün haftanın kaçıncı günü olduğunu bulan programı yapınız. http://jn7.net
            Console.WriteLine("17. Haftanın günü (Pazartesi, Salı, …) girilince, o günün haftanın kaçıncı günü olduğunu bulan programı yapınız. http://jn7.net");
            string gun;
            do
            {
                Console.WriteLine("Günü giriniz (Çıkmak için '0' ı tuşlayınız");
               gun = Console.ReadLine();

               if ((gun == "Pazartesi") || (gun =="pazartesi"))
                   {
                       Console.WriteLine("Haftanın 1. Günü");
               }
               else if ((gun == "Salı") || (gun == "salı"))
               {
                   Console.WriteLine("Haftanın 2. Günü");
               }
               else if ((gun == "Çarşamba") || (gun == "çarşamba"))
               {
                   Console.WriteLine("Haftanın 3. Günü");
               }
               else if ((gun == "Perşembe") || (gun == "perşembe"))
               {
                   Console.WriteLine("Haftanın 4. Günü");
               }
               else if ((gun == "Cuma") || (gun == "cuma"))
               {
                   Console.WriteLine("Haftanın 5. Günü");
               }
               else if ((gun == "Cumartesi") || (gun == "cumartesi"))
               {
                   Console.WriteLine("Haftanın 6. Günü");
               }
               else if ((gun == "Pazar") || (gun == "pazar"))
               {
                   Console.WriteLine("Haftanın 7. Günü");
               }
               else 
               {
                   Console.WriteLine("Geçersiz bir gün değeri girdiniz");
               }

            } while (gun !="0");

        }
    }
}

16. Sorunun Cevabı

16. Sayısal olarak girilen bir ay bilgisini ekrana “Ocak, Şubat, Mart veya diğer aylardan biri…” şeklinde yazan programı yapınız. (Tüm soruları görmek için tıklayınız.)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace aylar
{
    class Program
    {
        static void Main(string[] args)
        {//16. Sayısal olarak girilen bir ay bilgisini ekrana “Ocak, Şubat, Mart veya diğer aylardan biri…” şeklinde yazan programı yapınız. http://2gx.org
            Console.WriteLine("Sayısal olarak girilen bir ay bilgisini ekrana “Ocak, Şubat, Mart veya diğer aylardan biri…” şeklinde yazan programı yapınız. http://2gx.org");
            int ay;
            do
            {
                Console.WriteLine("Ay numarasını Giriniz. (Çıkmak İçin '0' a basınız)");
                ay = Int32.Parse(Console.ReadLine());
                switch (ay)
            	{
                              case 1:
                             Console.WriteLine("OCAK"); break;
                            case 2:
                             Console.WriteLine("ŞUBAT"); break;
                            case 3:
                             Console.WriteLine("MART"); break;
                            case 4:
                             Console.WriteLine("NİSAN"); break;
                            case 5:
                             Console.WriteLine("MAYIS"); break;
                            case 6:
                             Console.WriteLine("HAZİRAN"); break;
                            case 7:
                             Console.WriteLine("TEMMUZ"); break;
                            case 8:
                             Console.WriteLine("AĞUSTOS"); break;
                            case 9:
                             Console.WriteLine("EYLÜL"); break;
                            case 10:
                             Console.WriteLine("EKİM"); break;
                            case 11: 
                             Console.WriteLine("KASIM");break;
                            case 12:
                             Console.WriteLine("ARALIK"); break;

    	                	default:
                             Console.WriteLine("GEÇERSİZ BİR SAYI GİRDİNİZ");  break;
	               }

            } while (ay != 0);
        }
    }
}
Back to Top