Anasayfa / Yazılım / C# / C# Bilge Adam Introduction Ödevleri – PC Kapatma

C# Bilge Adam Introduction Ödevleri – PC Kapatma

C# intro seviyesini geçtikten sonra yaptığımız ödevlerden.. PC Kapatma Projesi; Diğerleri de eklenecektir..

İstenen : Kullanıcının verdiği bir saatte bilgisayarın kapatılmasını sağlamak. Ek olarak “x dakika kadar sonra kapan” diye de seçenek mevcuttur.

Kodları kopyalamaktan ziyade, bir fikir edinmenizi öneririm. 🙂

Proje Açık kaynak kodlarını istiyor iseniz lütfen gursoyismail@yahoo.com adresine isteğinizi belirtir mail atınız.

Projeyi aşağıdaki linkten de indirebilirsiniz.

{filelink=1}

Visual Studio 2012 kullananlar aşağıdaki linki tercih etsinler.

Kodlar ve açıklamaları :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PCKapatma
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToLongTimeString();      // Güncel saati yazdırma işlemi     


                if (label7.Text == DateTime.Now.ToLongTimeString())  // ayarlanan Saat ile güncel saat denk olduğunda
                {
                    System.Diagnostics.Process.Start("shutdown", "-f -s"); // Sistemi Kapat
                }           
            
        }       

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Enabled = true;                                  // Form yüklendiğinde güncel saati başlat
            label1.Text = DateTime.Now.ToLongTimeString();          // Yazdır 
            for (int i = 0; i <= 23; i++)                           // Comboboxa otomatik veriyi yükleme
            {
                comboBox1.Items.Add(i);                
            }
            for (int i = 0; i <= 59; i++)                          // comboboxa veriyi (dakika ve saniye) yükleme
            {
                comboBox2.Items.Add(i);
                comboBox3.Items.Add(i);
            }
        }

        int kapamasure;    // Global olarak değişkenlerimi tanımlıyorum
        string yenisaatdeger;
        string yenidakikadeger;
        string yenisaniyedeger;
        private void button1_Click(object sender, EventArgs e)
        {
            if (radioButton1.Checked == true)                 // Eğer radyo butonda ilk seçenek seçili ise (saate göre kapanma)her 3 combo boxtaki değeri string olarak alıyorum.
            {

                string saat = comboBox1.SelectedItem.ToString();                
                string dakika = comboBox2.SelectedItem.ToString();
                string saniye = comboBox3.SelectedItem.ToString();

                //Alınan değerleri Convert ediyorum, karşılaştırma yapmak için..

                int saatdeger = Convert.ToInt32(saat);        
                int dakikadeger = Convert.ToInt32(dakika);
                int saniyedeger = Convert.ToInt32(saniye);

                // Saat değeri 10 dan küçük ise labela yazdırırken başına 0 değerini ekliyorum.

                if (saatdeger < 10)
                {
                    yenisaatdeger = "0" + saatdeger.ToString();
                }

                else
                {
                    yenisaatdeger = saatdeger.ToString();
                }

                // Dakika değeri 10 dan küçük ise labela yazdırırken başına 0 değerini ekliyorum.

                if (dakikadeger < 10)
                {
                    yenidakikadeger = "0" + dakikadeger.ToString();
                }
                else
                {
                    yenidakikadeger = dakikadeger.ToString();
                }

                // Saniye değeri 10 dan küçük ise labela yazdırırken başına 0 değerini ekliyorum.
                if (saniyedeger < 10)
                {
                    yenisaniyedeger = "0" + saniyedeger.ToString();
                }

                else
                {
                    yenisaniyedeger = saniyedeger.ToString();
                }

                // Saat formatını belirlediğim karar yapısına göre label da yazdırıyorum

                label7.Text = yenisaatdeger + ":" + yenidakikadeger + ":" + yenisaniyedeger;
            }

            // Eğer radyo buton 2 işaretli ise;

            if (radioButton2.Checked == true)

                // seçilen dakika sıfır değilse, seçilen ifadeyi 60 (saniye) ile çarpıyorum, timer 2 yi başlatıyorum.
            {
                if (Convert.ToInt32(comboBox2.SelectedItem) != 0)
                {
                    int kapamadakika = Convert.ToInt32(comboBox2.SelectedItem.ToString());
                    kapamasure = 60 * kapamadakika;
                    timer2.Start();

                }

                    // seçilen değer sıfır ise kullanıcıya uyarı veriyor.
                else
                {
                    MessageBox.Show("Lütfen sıfır değerini seçmeyiniz");
                }
            }


        }

        private void button2_Click(object sender, EventArgs e)
            //Eğer iptal butonuna basılmış ise işlemi iptal ettiriyorum, Timer duruyor.
        {
            System.Diagnostics.Process.Start("shutdown", " -a");
            label7.Text = "";
            timer2.Stop();
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            comboBox1.Enabled = true;
            comboBox2.Enabled = true;
            comboBox3.Enabled = true;
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)

            // Eğer radyo buton 2 seçili ise, saat ve saniye seçilmesin diye combobox'a false veriyorum.
        {
            comboBox1.Enabled = false;
            comboBox2.Enabled = true;
            comboBox3.Enabled = false;
        }

        private void timer2_Tick(object sender, EventArgs e)

            // Dakikaya göre kapanma seçildiğinde kalan süreyi ekrana yazdırıyorum.

        {
            kapamasure--;
            label7.Text = kapamasure.ToString();
            Refresh();
            // süre 0 olduğunda sistemi 30 saniye içinde kapatıyorum.

            if (kapamasure == 0)
            {
                System.Diagnostics.Process.Start("shutdown", "-f -s");
            }


        }

        private void button3_Click(object sender, EventArgs e)

            // Çıkış butonu uyarısı..
        {
            DialogResult sonuc;
            sonuc = MessageBox.Show("Çıkmak İstediğinizden Eminmisiniz?", "Uyarı", MessageBoxButtons.OKCancel);
            {
                if (sonuc == DialogResult.OK)
                {
                    Application.Exit();
                }
            }
        }
    }
}

20 yorum

  1. Merhaba anlamadığım bir şey var zaten bu uygulamayı blogunuzda paylaşıyorsunuz neden resim ile gösteriyorsunuz kaynak kodları toplu bir şekilde uygulamayı paylaşsanız daha iyi olmaz mı sizcede ?

  2. Kesinlikle haklısınız, direkt olarak linki verip arkadaşlarımızın indirmesini sağlayabilirim. Fakat benim yapmak istediğim burdaki kodları direkt olarak indirip üzerinde değişiklikleri mevcut yazılmış program üzerinde değil, bir sıfırdan baştan yazarak adım adım her şeyi kendilerinin görmeleri. Çünkü sizde biliyorsunuz ki, yazılımcı olmak isteyen birey sürekli satırlarca kod yazmalı. Aksi halde dosyayı yayınladığımda, indirilecek, mevcut hazır olan çalıştırılacak şöyle bir bakılıp geçilecek. Böyle olduğunda ise, yazmak zorunda kalınacak.. Ama böyle daha kolay oluyor deniyor ise tabii ki ekleyebilirim.. 🙂

  3. burdan belirlemiş olduğun label v.b nesneler görünmüyor incelemek için projeyi gönderebirsen sevinirim

  4. Adresinize bu dosya yollanmıştır.

  5. Böyle paylaşılması daha yararlı arkadaşlar. Kod kopyalanmaz direkt olarak elle yazılır bu şekilde. Öğrenmek isteyen arkadaşlar zaten proje verilmiş dahi olsa kendiniz sıfırdan yazmalısınız öğrenebilmek için. Elinizin daha yatkın olabilmesi için.

  6. Yorum için teşekkürler Mesut Bey..

  7. Merhaba İsmail bey paylaştığınız kodlar sayenizde ödevlerimizdeki sorunları gidermekteyiz. Sizden bir ricam olacak tabi ki amacımız copy paste değildir. Poker dağıtımı, slot oyunu ve pc kapatma proje dosyalarını mail olarak atabilir misiniz? Kodlarda bir sorun yok çok açıklayıcı ve net fakat lbllar ve nesneler hakkında sorun yaşamamak için bu 3 projeyi mail atabilirseniz çok sevinirim. Teşekkürler.

  8. Yorumunuz için teşekkürler öncelikle, sizlere yardımcı olunabildi ise ne mutlu, istemiş olduğunuz dosyaları adresinize yolluyorum. Ben teşekkür ederim.

  9. Merhabalar burada yapılmış olan örnek sizin okulda verilmiş olan projelerinizi yada ödevlerinizi 4 4lük tamamlanması için yapılan armut piş ağzıma düş olayı burada yok eğer bu meslekde ilerlemek yada kendınızı biraz daha geliştirmek istiyorsanız copy paste yapılarak bu meslek öğrenilmez kendı çabanızla yaza yaza yapıp kendınızı bu şekilde geliştirebilirsiniz ilk yorum yazan Kemal Bey “kaynak kodları toplu bir şekilde uygulamayı paylaşsanız daha iyi olmaz mı ?”ben İsmail Gürsoy beyin yerinde olsam buradaki kodların sadece ekran görüntülerini boguna koyup paylaşmasından yanayım ki el alışkanlığınız kod yazmaya mantıkla ileremenizdir.
    Herkeze Bol C#lı Günler Dileğiyle 🙂

  10. Emre Bey’e katılmamak elde değil, teşekkürler yorumunuz için Emre Bey 🙂

  11. Öncelikle hepinize iyi çalışmalar demek istiyorum.Ben Bilge Adam’da yazılım eğitimi alıyorum.Bitirme projesi olarak hasta takip programı yazmayı düşünüyorum.Nasıl bir şey yazabilirim , neler yapmalıyım ? Kıymetli görüşlerinizden dolayı çok teşekkürler…

  12. Aslında çok zor bir proje değil. Sizin projeyi ne kadar geliştirmek istediğinize bağlı olarak zorlaşan bir proje.. Tamami ile Veritabanına dayalı olan kayıt ekleme-kayıt güncelleme- kayıt silme – kayıt arama gibi işlemlere sahip bir proje. Kullanmanız gereken yapı burada çok mühim. OOP mantığında olması gerekiyor ve DB tarafında güzel bir veritabanı dizaynı olması gerekiyor. Nasıl bir arayüze sahip olmalı, neler içermeli konusuna bir cevap arıyor iseniz hastahane otomasyon sistemleri internet üzerinde satılmakta, bunların demo olanlarını indirip bir hasta takip otomasyonu neler içerebilir bir göz atabilir ve kendi programınızı yazabilirsiniz.

  13. hocam birisi bu projeyi yapmış hangi siteye girsem heryerde aynı proje.Farklı hiç birşey yok.kopyala yapıştır

  14. Farklı pc kapatma projeleri
    isteyenler omerselvi@windowslive.com adresine mail atabilir c# ile ilgili projelere yardımcı olabilirim.

  15. Doğaldır bir çok kişi yapar ve istediği gibi sadece tek satır değiştirir yayınlar, tercih sizlerin kaynak olarak nereden yararlanmak isterseniz yararlanabilirsiniz 🙂

  16. selamlar bana çok lazım olan bir uygulama hazırlamışsınız, indirme linki ölmüş galiba açamadım. Rica etsem bana ağdan bilgisayar kapatma ile alakalı projeyi yollayabilir misiniz?

  17. Link çalışıyor, ama ben mail adresinize de yolladım.

  18. merhaba;
    yazdıgınız kodları sola doğru biraz daha kaydırırssanız hem sayfanın görünümü daha şık olur hemde ziyaretçileriniz yazıları okumak için zahmet çekmez..Teşekkürler

  19. Kadriye Çelik

    merhaba, ben bu programı proje olarak kullanmak istiyor. Ama ekstra şeyler eklemek istiyorum mesela bilgisayar kullanımı günlük 3 saat kullanılıp sistem tamamen kapanıp gün içerisinde tekrar kendini açmayacak ve programı da şifrelemek istiyorum yardımcı olursanız sevinirim. 🙂

  20. Ben de ne zamandır bir tane yapmak istiyordum, çünkü sıkça kullandığım bir programdaki saçma sapan bir progress bar fazlaca zaman kaybettiriyordu, sırf bu yüzden kendime bir tane yapmaya karar verdim. Normalde üşeniyordum ama alternatif kaynaklar iyi oluyor böyle, paylaşımınız için teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir