Pred kakšnim tednom sem na faksu uspešno zagovoril preprosto seminarsko nalogo Budilka (Alarm clock). Ker bo kakšna funkcija komu koristila bom program objavil tudi tukaj na blogu.
Vse skupaj sem zapakiral še v zanimivo grafično podobo, tako da je v kakšnem pogledu lahko tudi uporaben program.
Samo uporabnost programa lahko stestirate tukaj.
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;
using System.Runtime.InteropServices;namespace BudilkaGraficno
{
public partial class Budilka : Form
{
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);string fileName;
public Budilka()
{
InitializeComponent();
fileName = “”;}
private void playFile()
{
string Pcommand;
Pcommand = “open \”" + fileName + “\” type mpegvideo alias MediaFile”;
mciSendString(Pcommand, null, 0, IntPtr.Zero);
Pcommand = “play MediaFile REPEAT”;
mciSendString(Pcommand, null, 0, IntPtr.Zero);
}private void stopFile()
{
string Pcommand = “stop MediaFile”;
mciSendString(Pcommand, null, 0, IntPtr.Zero);
Pcommand = “close MediaFile”;
mciSendString(Pcommand, null, 0, IntPtr.Zero);
}private void timer1_Tick(object sender, EventArgs e)
{if ((dateTimePicker1.Value.Hour == DateTime.Now.Hour) &&
(dateTimePicker1.Value.Minute == DateTime.Now.Minute) &&
(dateTimePicker1.Value.Second == DateTime.Now.Second))
{if (this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
}notifyIcon1.BalloonTipText = “ZBUDI SE!”;
notifyIcon1.ShowBalloonTip(5000);timer1.Stop();
timer4.Start();playFile();
bPreklici.Enabled = false;
bPredvajaj.Enabled = false;
bUstavi.Enabled = false;
this.ControlBox = false;
bIzberi.Enabled = false;this.Focus();
}
}// Timer za uro in datum
private void timer2_Tick(object sender, System.EventArgs e)
{
//lUra.Text = DateTime.Now.TimeOfDay.ToString();
lUra.Text = DateTime.Now.Hour + “:” + DateTime.Now.Minute + “:” + DateTime.Now.Second;
lDatum.Text = DateTime.Now.Day + “.” + DateTime.Now.Month + “.” + DateTime.Now.Year;
}public long StartTime = 0;
public long EndTime = 0;// Timer za DREMANJE
private void timer3_Tick(object sender, System.EventArgs e)
{
StartTime–;
Invalidate();if (StartTime == 0)
{
timer3.Stop();
Invalidate();playFile();
}}
public long StartTime1 = 0;
// Timer za ugašanje alarma in miniziranje v tray po določenem času
private void timer4_Tick(object sender, System.EventArgs e)
{StartTime1–;
Invalidate();if (StartTime1 == 0)
{
stopFile();
timer3.Stop();
Invalidate();dateTimePicker1.Enabled = true;
bAlarm.Enabled = true;
bPreklici.Enabled = false;
bPreklici.Enabled = false;
bPredvajaj.Enabled = true;
bUstavi.Enabled = false;
textImeSkladbe.Enabled = false;
this.ControlBox = true;
bIzberi.Enabled = true;
bPodaljsaj.Enabled = false;
tbDremanje.Enabled = false;}
if (StartTime1 == -3)
{
timer4.Stop();
Invalidate();this.Hide();
this.notifyIcon1.Visible = true;
}
}private long PretvoriNastavljenCas(string cas)
{
long seconds = 0;
if (cas.Trim().Substring(0, 1) == “:”)
cas = cas.Substring(1);
string[] vals = cas.Split(new char[] { ‘:’, ‘ ‘, ‘.’, ‘/’ });
for (int i = 0; i < vals.Length; i++)
{
seconds += Convert.ToInt32(vals[i]) * (long)Math.Pow((double)60, (double)(vals.Length – (1 + i)));
}return seconds;
}public string PretvoriVcas(long stevec)
{
// stevec je v milisekundah in ga pretvori v sekunde in minute
long seconds = stevec;
string val = (seconds / 60).ToString(“00″) + “:” + (seconds % 60).ToString(“00″);
return val;
}private void button1_Click_1(object sender, EventArgs e)
{
this.Hide();
this.notifyIcon1.Visible = true;
}private void Budilka_FormClosing(object sender, FormClosingEventArgs e)
{stopFile();
}private void Budilka_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
notifyIcon1.BalloonTipText = “Budilka je sedaj skrita, ampak tvoj alarm\n” +
“je še vedno aktiven. Če želiš spremeniti nastavitve klini na ikono\n” +
“. Če se z miško pomakneš na ikono\n” +
“boš videl status budilke.”;
notifyIcon1.ShowBalloonTip(3000);this.ShowInTaskbar = false;
this.notifyIcon1.Visible = true;}
}private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
this.Show();
this.ShowInTaskbar = true;
}private void notifyIcon1_MouseMove(object sender, MouseEventArgs e)
{
if (bAlarm.Enabled)
{
notifyIcon1.BalloonTipText = “Alarm ni nastavljen.”;
notifyIcon1.ShowBalloonTip(3000);
}
else
{
notifyIcon1.BalloonTipText = “Alarm je nastavljen ob:\n” +
dateTimePicker1.Value.TimeOfDay.ToString();
notifyIcon1.ShowBalloonTip(3000);
}
}private void bIzberi_Click_1(object sender, EventArgs e)
{
OpenFileDialog myFD = new OpenFileDialog();
myFD.DefaultExt = “mp3″;
myFD.Multiselect = false;
myFD.CheckPathExists = true;
myFD.CheckFileExists = true;
myFD.AddExtension = true;
myFD.ValidateNames = true;
myFD.Title = “Poišči mp3 muziko, ki želiš da te zbudi”;if (myFD.ShowDialog() == DialogResult.OK)
{
fileName = myFD.FileName;
textImeSkladbe.Text = fileName;
}bPodaljsaj.Enabled = false;
bPreklici.Enabled = false;
bIzkljuci.Enabled = false;
bUstavi.Enabled = false;
bPredvajaj.Enabled = true;
}private void bPredvajaj_Click_1(object sender, EventArgs e)
{
playFile();
bUstavi.Enabled = true;
}private void bUstavi_Click_1(object sender, EventArgs e)
{
stopFile();
}private void bAlarm_Click_1(object sender, EventArgs e)
{
if (textImeSkladbe.Text == “”)
{
MessageBox.Show(“Prosim izberi mp3 za bujenje!”);
return;
}Random r = new Random();
bAlarm.Enabled = false;
bPreklici.Enabled = true;
textImeSkladbe.Enabled = false;
bIzberi.Enabled = false;
dateTimePicker1.Enabled = false;
bIzkljuci.Enabled = true;
bPodaljsaj.Enabled = true;
bUstavi.Enabled = false;
tbDremanje.Enabled = true;timer1.Start();
StartTime1 = PretvoriNastavljenCas(“00:45:00″);
}
private void bPreklici_Click_1(object sender, EventArgs e)
{
dateTimePicker1.Enabled = true;
bAlarm.Enabled = true;
bPreklici.Enabled = false;
textImeSkladbe.Enabled = false;
bIzberi.Enabled = true;
bIzkljuci.Enabled = false;
bPodaljsaj.Enabled = false;
bUstavi.Enabled = false;
tbDremanje.Enabled = false;
timer1.Stop();
}private void bIzkljuci_Click_1(object sender, EventArgs e)
{
stopFile();
timer3.Stop();
dateTimePicker1.Enabled = true;
bAlarm.Enabled = true;
bPreklici.Enabled = false;
bPreklici.Enabled = false;
bPredvajaj.Enabled = true;
bUstavi.Enabled = false;
textImeSkladbe.Enabled = false;
this.ControlBox = true;
bIzberi.Enabled = true;
bPodaljsaj.Enabled = false;
tbDremanje.Enabled = false;
}private void bPodaljsaj_Click_1(object sender, EventArgs e)
{
stopFile();
StartTime = PretvoriNastavljenCas(this.tbDremanje.Text);
Invalidate();if (StartTime > 0)
{
timer3.Start();
}lPodlajsaj.Text = PretvoriVcas(StartTime);
bAlarm.Enabled = false;
bPreklici.Enabled = false;
textImeSkladbe.Enabled = false;
bIzberi.Enabled = false;
dateTimePicker1.Enabled = false;
}private void Budilka_Load_1(object sender, EventArgs e)
{
lUra.Text = DateTime.Now.Hour + “:” + DateTime.Now.Minute + “:” + DateTime.Now.Second;
Budilka_Resize(sender, e);
textImeSkladbe.Enabled = false;
bUstavi.Enabled = false;
bIzkljuci.Enabled = false;
bPreklici.Enabled = false;
bPodaljsaj.Enabled = false;
tbDremanje.Enabled = false;
bPredvajaj.Enabled = false;}
}
}
To je sama koda, če bi pa kdo želel še sam program za Visual Studio 2008:
Komentarji: 2 Komentarjev
Tagi: alarm, alarm clock, budilka, c#, csharp, Programiranje
Če so ti prispevki na blogu všeč si odtrgaj minutko in se naroči na RSS sled mojega bloga.
Avtor bloga NE prevzema odgovornosti za neprimerno ali žaljivo vsebino komentarjev, ki so le plod osebnega mnenja in mišljenja avtorja komentarja!
Miro
marec 19th, 2009 ob 18:27
Čestitam!
ENTER
julij 4th, 2009 ob 15:09
SUPR ZELENIK MAJSTORE DEJ PLIZ DODEJ ME elvishotic@hotmail.com
K BI RES RAD VEDU SE KJ O SKRIPTAH DEJ PROSM DODEJ ME
Komentiraj