Zamanlı bilgisayar işlem programı


Deprecated: Function create_function() is deprecated in /var/www/vhosts/digitaldunyam.net/coder.digitaldunyam.net/wp-content/plugins/codecolorer/lib/geshi.php on line 4698

Her junior yazılımcının karşılaşacağı ödev babında program ile merhaba. BEnzer konu her ne kadar paylaşılmışsa da alternatif olarak paylaşmak istedim.

otomatik-bilsiyara-kapatma-programi

Aşağıdaki bağlantıdan indirebileceğiniz zamanlı bilgisayar işlem programı ile bilgisayarı belirlediğiniz zaman kapatıp veya yeniden başlatabilirsiniz. Yada resimdeki gibi bir form ekranı tasarlayarak alttaki kodlar yardımı ile yapabilirsiniz.

[wpdm_file id=11]

Form tasarlarken kullandığım kontroller; birkaç label, buton, maskedtextbox(zamanı saat ve dakika formatın da girebilmek için), datetimepicker, radiobuton, timer ve notifyicon. Yaptığım işlemleri kod tarafına geçmeden adım adım anlatırsam konuyu daha verimli aktaracağımı düşünüyorum;

  • Anlık zamanı gösterebilmek için timer kontrolünün tick olayına bir label a anlık saati gösterdik. Timer ın Interval değerini 1000 yaparak saniyede bir anlık saati label da otomatik gösterdik.
  • Zamanlayıcı çalıştırmak için ilgili buton yardımı ile maskedtextbox ve datetimepicker seçilen değeri metod yardımı ile datetime tipli değişkene atadık. Zamanlayıcı çalıştırmak için eklenen timer ı aktif ettik.
  • Aktif edilen zamanlayıcı timer ı her saniyede bir şimdiki zaman(saat) ile ayarlanan saati karşılaştırdık.
  • Ayarlanan zaman ile şimdiki zaman eşit ise radiobuton da seçilen işlemi yapmasını istedik.
  • NotifyIcon kontrolü ile programı yani formu gizlediğimiz de sağ alt köşede mesaj iletisi vermesi için ayarladık.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
 private void tmrSimdikiZaman_Tick(object sender, EventArgs e)
        {
            lblSimdikiSaat.Text = DateTime.Now.ToLongTimeString();
        }
       
        DateTime alarmZamani;
        DateTime ayarZamani;
        private void btnKur_Click(object sender, EventArgs e)
        {
            if (txtSaat.Text == "")
            {
                MessageBox.Show("Girilen değerleri kontrol et \n Alanlardan herhangi birini boş bırakma !");
                return;
            }
            else
            {

                alarmayar(dateTimePicker1.Value.Date);
            }
        }

        private void alarmayar(DateTime zaman)
        {

            alarmZamani = zaman;
            alarmZamani = alarmZamani.AddHours(Convert.ToInt32(txtSaat.Text.Substring(0, 2)));
            alarmZamani = alarmZamani.AddMinutes(Convert.ToInt32(txtSaat.Text.Substring(3, 2)));


            if (DateTime.Now >= alarmZamani)
            {
                MessageBox.Show("Geçmiş zamana alarm kuramazsınız !!!");
                return;
            }
            else
            {

                tmrAlarmZamani.Enabled = true;
                btnKur.Enabled = false;
                if (rbKapat.Checked == true)
                {
                    lblMesaj.Text = "Bilgisayar " + txtSaat.Text +  " zamanına kapatılması için ayarlandı.";
                }
                else if (rbYeniden.Checked == true)
                {
                     lblMesaj.Text = "Bilgisayar " + txtSaat.Text + " zamanına yeniden başlatılması için ayarlandı.";
                }
                else
                {
                    lblMesaj.Text = txtSaat.Text +  " için herhangi bir görev ayarlanmamış";
                }
            }
        }

        private void tmrAlarmZamani_Tick(object sender, EventArgs e)
        {
            ayarZamani = DateTime.Now;

            if (ayarZamani.ToString() == alarmZamani.ToString())
            {
                tmrAlarmZamani.Enabled = false;

                if (rbKapat.Checked)
                {
                    notifyIcon1.BalloonTipText = "Bilgisayarınız kapatılıyor...";
                    notifyIcon1.ShowBalloonTip(3);
                    System.Diagnostics.Process.Start("shutdown", "-s -f -t 0");
                }
                else if (rbYeniden.Checked)
                {
                    notifyIcon1.BalloonTipText = "Bilgisayarınız yeniden başlatılıyor...";
                    notifyIcon1.ShowBalloonTip(3);
                    System.Diagnostics.Process.Start("shutdown", "-r -f -t 0");
                }
                else
                {
                    lblMesaj.Text = "Zaman Geldi";
                    notifyIcon1.BalloonTipText = "Zaman Geldi";
                    notifyIcon1.ShowBalloonTip(5);
                }

            }
        }

        private void btnIptal_Click(object sender, EventArgs e)
        {
            tmrAlarmZamani.Enabled = false;
            btnKur.Enabled = true;
            rbYeniden.Checked = false;
            rbKapat.Checked = false;
            lblMesaj.Text = "Herhangi bir görevi yok !";
        }

        private void Form1_Resize(object sender, EventArgs e)
        {
            if (FormWindowState.Minimized == WindowState)
            {
                Hide();
                notifyIcon1.BalloonTipText = lblMesaj.Text;
                notifyIcon1.ShowBalloonTip(5);
            }
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (tmrAlarmZamani.Enabled == true)
            {
                if (MessageBox.Show("Zamanlandırlmış bir görev olduğu için uygulama kapatılamıyor. \nUygulamayı ve görevi kapatmakta karalımısınız ?", "Uyarı !", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    Application.Exit();
                }
             
            }
        }

       

        private void notifyIcon1_Click(object sender, EventArgs e)
        {
            this.Show();
            WindowState = FormWindowState.Normal;
        }

Bir Cevap Yazın

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