# VBForums UtilityBank > UtilityBank - Utilities >  Desktop Alarm Clock

## VBDT

Yet another great application, this one is a Desktop Alarm Clock! The Desktop Alarm Clock is very useful application that can perform some simple tasks. First it will show the current time in user friendly interface. Second, the user can schedule events with the clock so that the clock will alarm when the events are due. Third the clock is simple, user friendly and almost fully customizable. Never miss an important meeting or event!

More detailed features:
The Desktop Alarm Clock can notify about the events as well execute commands such as; start applications, open document files, play audio and video files, play online radio (streaming path should be provided with Windows Media, Winamp or other players), navigate to a web page etc.It gives the user an ability to design the clock fully (every element). You are the artist of your desktop clock.It gives the user an ability to set the clock size, location etc.It also has a nicely designed stopwatch and ability to provide information about different time zones.The user can schedule the events by every: Sundays, Mondays, Tuesdays, Wednesdays, Thursdays, Fridays, Saturdays, Once, Daily, Weekends, AfterStart.The clock supports globalization of date & time for a specific culture (formats).And much more!
_Some of Desktop Alarm Clock's dials. You can design the elements by changing their properties._



_Alarming clock._



_The clock's menu._



_This is how to schedule an event that starts Winamp and plays streaming online radio after five minutes the Desktop Alarm Clock starts._



In order to have animated characters to notify you about the events your system must have a Microsoft Agent character installed. By default, at least one agent character comes with windows (the Merlin character). For more agent characters (Genie, Peedy and Robby) you can download them from the link bellow. To get the most out of the Desktop Alarm Clock you could also download and install Text-To-Speech engine(s) for the preferred language so that the characters could pronounce the events' reminding notes. To download these components follow this link: MS Agents and Text-to-Speech engines.

*Update History:*

Version 2.1.0.0
Added hotkey feature to the application.Some bug fixes.

Version 2.1.0.3
Fixed some problems for Vista and Windows 7.Added Notify Update feature.

*System Requirements:*
Windows 2000 and above.NET Framework 3.5 SP1

*License info:*
Everyone is permitted to copy and use Desktop Alarm Clock application as well as its source files freely for their personal or business needs. The only restriction is that the application as an entirety must not be an item for sell. If Desktop Alarm Clock should be used for commercial needs than permission is needed from the author of this application; from Arman Ghazanchyan.

By installing and using Desktop Alarm Clock you agree that the author of this application is not responsible for any damages caused to you or your property.

Download the latest version *here*

----------


## hager

hi VBDT
thank you veryyyyyy mush about your effort
but i really want to know if i could increase the horn voice or not because it is not that loud

----------


## VBDT

> hi VBDT
> thank you veryyyyyy mush about your effort
> but i really want to know if i could increase the horn voice or not because it is not that loud


Hi Hager,
The only way to increase the horn voice or the characters speak is to increase the computer sound from the lower right corner or from the keyboard.
Best regards,
VBDT  :Smilie:

----------


## takecontrol

Hello VBDT,

A very nice scheduler in your alarm clock.
Is the source code of the event scheduler available so I can control hardware by event that is connected to my PC (serial port).

On the net there is not much to find about it, thats wy I asking you.

Thanks in advance,

TakeControl.

----------


## takecontrol

Dead topic, in 4 weeks no answer to my question  :Mad:

----------


## VBDT

> Hello VBDT,
> 
> A very nice scheduler in your alarm clock.
> Is the source code of the event scheduler available so I can control hardware by event that is connected to my PC (serial port).
> 
> On the net there is not much to find about it, thats wy I asking you.
> 
> Thanks in advance,
> 
> TakeControl.


Hi,
I am not sure which source code do you need, the design code or the inner code that checks for the due events? By the way the application uses a database for events and loops through the events in the database and checks if they are due. You can find the source code of the application in *here*.

Regards,
VBDT

----------


## si_the_geek

Our UtilityBank Guidelines specify that source code must be provided with the thread (as I'm fairly sure you had originally), so could you please attach all of the code to the first post?

Even if you don't keep the code up to date with future changes, it will still ensure that people can do what was intended for this forum, which is learn from your code.

----------


## takecontrol

Thanx VBDT,

I need the inner code to learn how to setup a event scheduler, the graphics are very nice but I don`t need it, sorry for that.

Best regards,

TakeControl

----------


## VBDT

> Thanx VBDT,
> 
> I need the inner code to learn how to setup a event scheduler, the graphics are very nice but I don`t need it, sorry for that.
> 
> Best regards,
> 
> TakeControl


Hi, you need to check the ClockForm.vb file in the source code file that is provided in this thread. There are two subs that you should be interested in (Clock1_TimeChanged & IsDue methods). The first one is the clock’s time changed event handler that fires every second and calls IsDue method with database record as one of its parameters (you could use a timer object for this that is set to fire for every second). IsDue method is the actual method that checks if the event is due. If it is, than it returns True, otherwise False. Of course there can be different ways of doing this but this is my aproch.

Good luck,
VBDT

----------


## mufmuf

Hello VBDT, thank you for nice .NET clock control. It is working perfectly.

- Is it really necessary to maintain 60 properties for second markers ? 
  It would be nice to maintain it as one central property. 
  In most cases there is no need for different second markers.
- Unfortunately there is problem with "Desktop Alarm Clock" application. 
  Probably special national characters or spaces in path are causing this problem. 
  See below.
  It would by nice to have "-safe" comman option to deactivate loading of configuration   
  file.

Thank you
Best regards
mufmuf
------------------------------------------------------------------------------
  It raises following error: unhandled exception "wrong path format" after start

Desktop Alarm Clock   Critical   1
==================================

System
---------
OS:         Microsoft&#174; Windows Vista™ Home Premium ; Win32NT; 6.0.6002.131072; Service Pack 2

Exception
---------
Type:       System.ArgumentException
Source:     mscorlib
Assembly:   mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message:    Wrong path 

Trace:      v System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
            v System.IO.Path.NormalizePath(String path, Boolean fullCheck)
            v System.IO.Path.GetFullPathInternal(String path)
            v System.IO.DirectoryInfo..ctor(String path)
            v DesktopAlarmClock.AgentReadOnlyCollection.GetAgents()
            v DesktopAlarmClock.AgentReadOnlyCollection..ctor()
            v DesktopAlarmClock.ClockForm.Form1_Load(Object sender, EventArgs e)
            v System.EventHandler.Invoke(Object sender, EventArgs e)
            v System.Windows.Forms.Form.OnLoad(EventArgs e)
            v System.Windows.Forms.Form.OnCreateControl()
            v System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
            v System.Windows.Forms.Control.CreateControl()
            v System.Windows.Forms.Control.WmShowWindow(Message& m)
            v System.Windows.Forms.Control.WndProc(Message& m)
            v System.Windows.Forms.ScrollableControl.WndProc(Message& m)
            v System.Windows.Forms.ContainerControl.WndProc(Message& m)
            v System.Windows.Forms.Form.WmShowWindow(Message& m)
            v System.Windows.Forms.Form.WndProc(Message& m)
            v System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
            v System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
            v System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

----------


## VBDT

Hi,
Well, for the first question about clock control as why second markers have properties. I would say it is because the second marker is a Marker type as well the hour markers so they all have the same properties. Will some one ever need to set different property values for the second marker? I don’t know but here we have it and who knows maybe in some situation it will be needed. It gives more flexibility and that is what makes the control good. For example designing the clock you could use the markers as the part of the design. See the attached picture.

As for the error, thank you for reporting it to me. I believe I fixed this issue while ago but didn’t update the app in here. There is a new version available for download. Please try to update the app and see if you get the same error.

Regards,
VBDT

----------


## mufmuf

Thank you VBDT

Unfortunately it is still causing "invalid path" exception. 
The cause is somewhere outside of clock control. Probably in configuration.
I wrote simple alarm clock for myself using it and it works perfectly.

----------


## VBDT

> Thank you VBDT
> 
> Unfortunately it is still causing "invalid path" exception. 
> The cause is somewhere outside of clock control. Probably in configuration.
> I wrote simple alarm clock for myself using it and it works perfectly.


Hi Mufmuf, I know the problem since I got Vista windows laptop. The problem is the vista security that disallows write permission for the clack MS Access database which is located in the application directory. For vista you need to give the database file a write permission for the user than it will work. I am still working on changing the database location so that the user can have write permission without setting it manually. This is a little bit complicated on Vista and there are no good locations for it. But as I said you can change the write permission on the db file to fix this problem.

----------


## si_the_geek

There are good locations - and they have been there (and part of the "rules" for creating apps for Windows) since Windows 2000.

For more information, see the article Where should I store the files that my program uses/creates? from our Classic VB FAQs _(in the FAQ forum)_.  The code won't be right for you, but hopefully it will give you some ideas.

----------


## VBDT

> There are good locations - and they have been there (and part of the "rules" for creating apps for Windows) since Windows 2000.
> 
> For more information, see the article Where should I store the files that my program uses/creates? from our Classic VB FAQs _(in the FAQ forum)_.  The code won't be right for you, but hopefully it will give you some ideas.


Thanks si_the_geek, I will take a look on the link.
Mean while I like to ask you this question. Since I am using VS Setup project it complains about putting my DB in a user folder. It complains that the file will not be available for all users. In this case I need the commonAppData folder but I can’t find the predefined folder in the deployment setup project under user machine in VS installer.
Do you know which folder would be equal to the CommonAppData folder?

Thanks,
VBDT

----------

