Jan Zelenik.net

  • Jan Zelenik.net
  • Domača stran

  • Blog prispevki

  • Kontaktiraj me

  • Slika se mi

C# Budilka – preprost primer

avtor: admin
kategorija: Programiranje


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.

Budilka, Alarm Clock

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:

Prenesi za Visual Studio 2008



------------------------------------------- Sorodne povezave -------------------------------------------

  • Letalski miting: Skoke 2008 (drugi dan)
  • Hiša – dvojček, Gradiška, Sp. Kungota 114m2 – PRODAMO
  • Sigma 70-300mm APO 4-5.6 (Pentax)
  • CeBit 2009 – Hannover
  • CeBit 2009 – galerija
22. januar 2009||2 Komentarjev | Ogledov: 950

2 komentarjev na “C# Budilka – preprost primer”

  • Miro
    Post Time 19. marec 2009 ob 18:27 - Odgovori

    Čestitam!

  • ENTER
    Post Time 4. julij 2009 ob 15:09 - Odgovori

    SUPR ZELENIK MAJSTORE DEJ PLIZ DODEJ ME elvishotic@hotmail.com
    K BI RES RAD VEDU SE KJ O SKRIPTAH DEJ PROSM DODEJ ME

Dodaj odgovor Prekini odgovor

Tvoja e-pošta ne bo objavljena. Zahetvana polja so označena *

*

*

Lahko uporabite HTML značke in atribute: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

5 Uporabnikov Online

Najbolj brano

  • SiOL TV na računalniku – čist na izi
  • Travian vodič (duplikat)
  • Sam svoj mojster – polaganje laminata
  • bolha.com goljufi na delu
  • Samsung Galaxy S, kako ga posodobiti in pohitriti?
  • SiOL BOX – do multimedijskih datotek kar preko PC-ja!
  • Siol – sam svoj mojster!
  • Internetni operaterji in njihova ponudba
  • The new generation of bloging!
  • Prometoid – najboljši Promet za Android

Zadnje komentirano

  • User Avatar Mate: Danes sem si naložil novo verzijo vlc ver.2.0 pa mi je prenehalo delovati, tako da sem si mogel ponovno namestiti vlc ver. 1.0. Ima kdo...
  • User Avatar miran: mene pa zanima ali komu delajo podnapisi na računalniku od teh silovih programov?uporabljam vlc in delajo programi ampak ni podnapisov...
  • User Avatar tito: Prosim če mi kdo ahko pove da kateri rom je najbojši za samsung i9000 ker z tem zadnjim nisem preveč zadovojen 2.3.6
  • User Avatar Sebastjan: Na RAM2 sem poslal vprašanje, kako je z garacijo, če nalagaš rom-e iz samfirmware.com. dobil sem sledeč odgovor: "Omenjena spletna stran ni uradna stran Samsunga...
  • User Avatar Jan: Evo najnovješa playlista, sem tudi naredil dva fajla eden Z in drugi BREZ programov za odrasle: http://zelenik.net/sioltv/playlista_april2012.zip (paket vsebuje obe playlisti).

Kaj pišejo drugi – Drugi svet

  • Domača stran
  • Blog prispevki
  • Slika se mi
  • Kontaktiraj me
  • Zemljevid strani
Google Plus RSS Twitter

Značke

2. odbojkarska liga 2010 Android Barcelona derbi Facebook Fotografija fotografije google Hoče hoče - slivnica Internet izlet Jan Zelenik janša k10d ljudski vrt London maribor mobitel Motokros MX3 nagradna igra Nikon NK Maribor nogomet odbojka OK. Hoče Orehova vas pahor pentax Politika radizel Real Madrid Sašo Kragelj Sigma siol slivnica slovenija televizija Tv viole volitve zabava zelenik

Zadnje na blogu

  • Prenova bloga in 4 letna statistika
    27. marec 2012
  • Odbojka na mivki je “in” – Hočka plaža vabi!
    3. marec 2012
  • SiOL TViN, TV kadarkoli in kjerkoli!
    22. februar 2012
  • Kulturniki kje vam je kultura?!?
    8. februar 2012

Twitter @JanZelenik

Vse pravice pridržane. Copyright © 2012. www.zelenik.net
FireStats icon Powered by FireStats