Zamanlı bilgisayar işlem programı

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.

[cc lang=’csharp’ ] 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;
}[/cc]

Bir cevap yazın

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