Alarmlı Konuşan Saat programı
Program herzaman üstte(always on top),ses dosyalarının sırayla çalınması, sağ tık menüsü özellikleri içeriyor.
'Module1 in kodları ----------------------------
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public alarm As Boolean
Public saatbasi As Boolean
Public alarmsaati As String
Public alarmdakikasi As String
'Ses dosyaları
'Programın bulunduğu dizinin altında "Sesler"
'adında bir dizin olmalı
'Sesler dizininin altındaki dosyalar :
'Dosya adı: İçeriği :
'---------- --------
'00.wav --- "SIFIR"
'10.wav --- "ON"
'20.wav --- "YİRMİ"
'30.wav --- "OTUZ"
'40.wav --- "KIRK"
'50.wav --- "ELLİ"
'Alarm.wav - Alarm zil sesi
'Bosluk.wav - Çok kısa bir boşluk
'Saat.wav - "SAAT"
'saat01.wav - "BİR"
'saat02.wav - "İKİ"
'saat03.wav - "ÜÇ"
'saat04.wav - "DÖRT"
'saat05.wav - "BEŞ"
'saat06.wav - "ALTI"
'saat07.wav - "YEDİ"
'saat08.wav - "SEKİZ"
'saat09.wav - "DOKUZ"
'saat10.wav - "ON"
'saat11.wav - "ONBİR"
'saat12.wav - "ONİKİ"
'-----------------------------------------------
'Form1 : Ana form
'Form1 in nesneleri:
'Label1 : Saatin yazılacağı etiket
'Label2 : am. pm. yazacak olan etiket
'MMControl1 : Ses dosyalarını çalmak için
'Microsoft multimedia control
'MCI32.OCX dosyası
'Timer1 :
'Enabled = True
'Interval = 500
'Timer2 :
'Enabled = False
'Interval = 10
'Timer3 :
'Enabled = False
'Interval = 1000
'Form1 in kodları ------------------------------
Dim yol(3) As String
Dim arttir As Byte
Dim yer As String
Dim alarmsesi As String
Dim bosluk As String
Dim alarmçaldi As Boolean
Dim alarm1 As Boolean
Dim alarmsusturuldu As Boolean
Dim saatisoyledi As Boolean
Dim kayit As String
Private Sub Form_Load()
yer = App.Path + "\sesler\"
alarmsesi = yer + "Alarm.wav"
bosluk = yer + "Bosluk.wav"
SetWindowPos hwnd, -1, 0, 0, 0, 0, &H1 Or &H2
If GetSetting("Konuşansaat", "Ayarlar", "Devrede") = "1" Then alarm = "1" Else alarm = "0"
If GetSetting("Konuşansaat", "Ayarlar", "Hsb") = "1" Then saatbasi = "1" Else saatbasi = "0"
alarmsaati = GetSetting("Konuşansaat", "Ayarlar", "Saat")
alarmdakikasi = GetSetting("Konuşansaat", "Ayarlar", "Dakika")
alarm1 = "1"
alarmsusturuldu = "0"
saatisoyledi = "0"
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub Label1_DblClick()
saatioku
End Sub
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then
Call form2.PopupMenu(form2.Saat)
End If
End Sub
Private Sub Timer1_Timer()
Dim fark As Integer
If Val(Left(Time, 2)) > 12 Then
fark = Val(Left(Time, 2)) - 12
Label2 = "pm."
If fark < 10 Then
Label1 = "0" + Right(Str(fark), 1) + Right(Time, 6)
Else
Label1 = Right(Str(fark), 2) + Right(Time, 6)
End If
Else
If Left(Time, 2) = "00" Then Label1 = "12" + Right(Time, 6) Else Label1 = Time
Label2 = "am."
End If
If alarm = "1" And alarm1 = "1" Then alarmkontrol
If saatbasi = "1" Then saatbasikontrol
End Sub
Private Sub Timer2_Timer()
If MMControl1.Mode = 526 Then Exit Sub
arttir = arttir + 1
If arttir = 4 Then Timer2.Enabled = "0": MMControl1.Command = "close": Exit Sub
MMControl1.Command = "close"
MMControl1.FileName = yol(arttir)
MMControl1.Command = "open"
MMControl1.Command = "play"
End Sub
Public Sub saatioku()
If alarm1 = "0" And alarmsusturuldu = "0" Then
MMControl1.Command = "stop"
MMControl1.Command = "close"
alarmsusturuldu = "1"
Exit Sub
End If
If MMControl1.Mode = 526 Then Exit Sub
yol(0) = yer + "saat.wav"
yol(1) = yer + "saat" & Left(Label1, 2) & ".wav"
yol(2) = yer + Mid(Label1, 4, 1) & "0.wav"
If Mid(Label1, 4, 2) = "00" Then yol(2) = bosluk
yol(3) = yer + "saat0" & Mid(Label1, 5, 1) & ".wav"
arttir = 0
MMControl1.Command = "close"
MMControl1.FileName = yol(0)
MMControl1.Command = "open"
MMControl1.Command = "play"
Timer2.Enabled = "1"
End Sub
Public Sub alarmkontrol()
If Left(Label1, 2) = alarmsaati And Mid(Label1, 4, 2) = alarmdakikasi Then
If MMControl1.Mode = 526 Or alarm1 = "0" Then Exit Sub
MMControl1.Command = "close"
MMControl1.FileName = alarmsesi
MMControl1.Command = "open"
MMControl1.Command = "play"
alarm1 = "0"
saatbasi = "0"
kayit = Left(Time, 5)
Timer3.Enabled = "1"
End If
End Sub
Private Sub Timer3_Timer()
If kayit <> Left(Time, 5) Then
alarm1 = "1"
alarmsusturuldu = "0"
If GetSetting("Konuşansaat", "Ayarlar", "Hsb") = "1" Then saatbasi = "1" Else saatbasi = "0"
Timer3.Enabled = "0"
End If
End Sub
Public Sub saatbasikontrol()
If Mid(Label1, 4, 2) = "00" And saatisoyledi = "0" Then
saatioku
saatisoyledi = "1"
End If
If Mid(Label1, 4, 2) <> "00" Then saatisoyledi = "0"
End Sub
'-----------------------------------------------
'Form2 : Sağ tık menüsü
'Form2 nin nesneleri:
'Menü
'Caption = Saat
'Name = Saat
'Alt menü :
'1 : Caption = Ayarlar
' Name = ayarlar
'2 : Caption = Konuş
' Name = konus
'3 : Caption = Çıkış
' Name = cıkıs
'Form2 nin kodları -----------------------------
Private Sub ayarlar_Click()
Form3.Show
End Sub
Private Sub konus_Click()
Form1.saatioku
End Sub
Private Sub cıkıs_Click()
End
End Sub
'-----------------------------------------------
'Form3 : Alarm ayarlarının yapıldığı form
'Form3 ün nesneleri :
'Command1(0) : Tamam
'Command1(1) : İptal
'Command1(2) : Uygula
'Command2(0) : Alarm saatini 1 arttırmak için
'Caption = +1
'Command2(1) : Alarm saatini 1 eksiltmek için
'Caption = -1
'Command3(0) : Alarm dakikasını 10 arttırmak için
'Caption = +10
'Command3(1) : Alarm dakikasını 10 eksiltmek için
'Caption = -10
'Command3(2) : Alarm dakikasını 1 arttırmak için
'Caption = +1
'Command3(3) : Alarm dakikasını 1 eksiltmek için
'Caption = -1
'Label1(0) : Sadece Yazı
'Caption = Saat
'Label1(1) : Sadece Yazı
'Caption = Dakika
'Label2 : Alarm saatinin yazılacağı etiket
'Label3 : Alarm dakikasının yazılacağı etiket
'Option1 : am.
'Option2 : pm.
'Check1 : Alarm devrede
'Check2 : Her saat başı otomatik konuş
'Form3 ün kodları ------------------------------
Dim Saat As Integer
Dim dakika As Integer
Private Sub Command1_Click(Index As Integer)
If Index = 0 Then uygula: Unload Me
If Index = 1 Then Unload Me
If Index = 2 Then uygula
End Sub
Private Sub Command2_Click(Index As Integer)
Select Case Index
Case 0
Saat = Saat + 1
If Saat > 12 Then Saat = 12
If Saat < 10 Then
Label2 = "0" + Right(Str(Saat), 1)
Else
Label2 = Right(Str(Saat), 2)
End If
Case 1
Saat = Saat - 1
If Saat < 1 Then Saat = 1
If Saat < 10 Then
Label2 = "0" + Right(Str(Saat), 1)
Else
Label2 = Right(Str(Saat), 2)
End If
End Select
End Sub
Private Sub Command3_Click(Index As Integer)
Select Case Index
Case 0
dakika = dakika + 10
If dakika > 59 Then dakika = 59
If dakika < 10 Then
Label3 = "0" + Right(Str(dakika), 1)
Else
Label3 = Right(Str(dakika), 2)
End If
Case 1
dakika = dakika - 10
If dakika < 0 Then dakika = 0
If dakika < 10 Then
Label3 = "0" + Right(Str(dakika), 1)
Else
Label3 = Right(Str(dakika), 2)
End If
Case 2
dakika = dakika + 1
If dakika > 59 Then dakika = 59
If dakika < 10 Then
Label3 = "0" + Right(Str(dakika), 1)
Else
Label3 = Right(Str(dakika), 2)
End If
Case 3
dakika = dakika - 1
If dakika < 0 Then dakika = 0
If dakika < 10 Then
Label3 = "0" + Right(Str(dakika), 1)
Else
Label3 = Right(Str(dakika), 2)
End If
End Select
End Sub
Private Sub Form_Load()
On Error Resume Next
If GetSetting("Konuşansaat", "Ayarlar", "am-pm") = "0" Then Option1.Value = "1": Option2.Value = "0" Else Option1.Value = "0": Option2.Value = "1"
If GetSetting("Konuşansaat", "Ayarlar", "Devrede") = "1" Then Check1.Value = 1 Else Check1.Value = 0
If GetSetting("Konuşansaat", "Ayarlar", "Hsb") = "1" Then Check2.Value = 1 Else Check2.Value = 0
Label2.Caption = GetSetting("Konuşansaat", "Ayarlar", "Saat")
Label3.Caption = GetSetting("Konuşansaat", "Ayarlar", "Dakika")
Saat = Val(GetSetting("Konuşansaat", "Ayarlar", "Saat"))
dakika = Val(GetSetting("Konuşansaat", "Ayarlar", "Dakika"))
End Sub
Public Sub uygula()
If Option1.Value = "1" Then SaveSetting "Konuşansaat", "Ayarlar", "am-pm", "0" Else SaveSetting "Konuşansaat", "Ayarlar", "am-pm", "1"
If Check1.Value = 1 Then
SaveSetting "Konuşansaat", "Ayarlar", "Devrede", "1"
alarm = "1"
alarmsaati = Label2.Caption
alarmdakikasi = Label3.Caption
Else
SaveSetting "Konuşansaat", "Ayarlar", "Devrede", "0"
alarm = "0"
End If
If Check2.Value = 1 Then SaveSetting "Konuşansaat", "Ayarlar", "Hsb", "1": saatbasi = "1" Else SaveSetting "Konuşansaat", "Ayarlar", "Hsb", "0":: saatbasi = "0"
SaveSetting "Konuşansaat", "Ayarlar", "Saat", Label2.Caption
SaveSetting "Konuşansaat", "Ayarlar", "Dakika", Label3.Caption
End Sub