Introduction: Make a Vbs Script to Read the Time

Picture of Make a Vbs Script to Read the Time

Hi, friendly neighborhood Super_Nerd here. As my first instructable I will show how to make a simple vbs script that reads the time and date with the narrorator. You will need:

-a computer running Windows 95 or higher (won't work on Macs sorry macs :( )
-ability to copy and paste
-a brain (sorry jellyfish)

Step 1: A Pad of Notes

Picture of A Pad of Notes

First open notepad

Windows 95-2000

Windows XP-7

Start>All Programs>Acessories>Notepad

Once you have notepad open go onto the next step.

Step 2: The Code!

Picture of The Code!

 Copy and paste this code:

Set Sapi = Wscript.CreateObject("SAPI.SpVoice")

Sapi.speak weekdayname(weekday(date))
Sapi.speak monthname(month(date))
Sapi.speak day(date)
Sapi.speak year(date)
Sapi.speak "Is the current date."
Sapi.speak "The current time is"

if hour(time) > 12 then
Sapi.speak hour(time)-12
if hour(time) = 0 then
Sapi.speak "12"
Sapi.speak hour(time)
end if
end if

if minute(time) < 10 then
Sapi.speak "o"
if minute(time) < 1 then
Sapi.speak "clock"
Sapi.speak minute(time)
end if
Sapi.speak minute(time)
end if

if hour(time) > 12 then
Sapi.speak "P.M."
if hour(time) = 0 then
if minute(time) = 0 then
Sapi.speak "Midnight"
Sapi.speak "A.M."
end if
if hour(time) = 12 then
if minute(time) = 0 then
Sapi.speak "Noon"
Sapi.speak "P.M."
end if
Sapi.speak "A.M."
end if
end if
end if

Step 3: Saving

After you copied the code we must save it. Go to
File>Save As

You can name it anything you want but it just has to end with the .vbs file extention or this in simple terms
Won't work.

Step 4: You're Done!

Picture of You're Done!

Well that wasn't so hard, was it? Now open your file...
Don't be spooked if it says the date and time. Thanks goes to SCRIPTmaster for this  instructable that tought me how to use SAPI in scripts. Now go and put this in your robot or whatever.

Note: I am not responsible if your script goes wrong. You should have copied and pasted it in the first place. If when you try to run your script it gives you an error message try recopying the script. If that still doesn't work leave a comment and maybe we all can figure it out.

100 0010 111 1001 110 0101


DhikaA (author)2015-06-25

Btw where can i put this line "<pitch middle='15'>" on this script
I want to change the voice pitch
{Set voice = CreateObject("SAPI.SpVoice")

voice.Rate = -2

Voice.Volume = 100

voice.Speak"<pitch middle='15'>"" Good Morning"}

Super_Nerd (author)DhikaA2015-06-25

The best way to figure these things out is to just try them and see for yourself. After looking into it (I haven't done VBS in years), it looks like that should work in the range [-25, 25].

DhikaA (author)Super_Nerd2015-06-25

Ah I mean where i can put those line in this "VBS to read time"
i try to put my VBS script on "Sapi.speak minute(time)" into
"Sapi.speak"<pitch middle='15'>" minute(time) and got error

Super_Nerd (author)DhikaA2015-06-26

You probably ran into an error because that wasn't concatenated. For the sake of simplicity, give the pitch its own line before you have it read the minutes separately on the next line.

Sapi.speak "<pitch middle=15>"

Sapi.speak minute(time)

DhikaA (author)Super_Nerd2015-06-26

or is just impossible =_= i try that but still here i post the picture as well hope can help

Super_Nerd (author)DhikaA2015-06-27

Sorry, that was my bad. From what I can tell in how you're using the SAPI object (I've never used this functionality myself, which explains why I forgot this), the 15 in

Sapi.speak "<pitch middle=15>"

should be surrounded by apostrophes like this

Sapi.speak "<pitch middle='15'>"

My guess is that it's just how the SAPI parser reads it, but I can't be certain. Hope that helps.

ImABananaLol (author)2013-06-02

amg!! ty so much!! i used this over and over cuz' it's so fun to do!!!!!!!!!!!!!!!!!!!!!!!!!!!! thankyouthankyouthankyou (p.s. my friends are talking about weird stuff in the background right now like smarty parties O.o)

ATI4890HD (author)2012-11-15

worked! but sound robotic..

beaver84 (author)2011-11-07

This is a really cool script! Thanks for posting it!

imBobertRobert (author)2011-06-08

how did you get to the speech properties?

Start>Control Panel>Speech


theformatter (author)2011-02-02

Nice script.

The only change I made was instead of saying every string as it was determined, I built a bigger string as the script executed, then at the very end issue one command to say that string. For example, instead of

Sapi.Speak hour(time)-12

I used

strSapi = strSapi & " " & hour(time)-12

and the last line of the script was:

Sapi.Speak strSapi

Made for a smoother output plus it works faster because you only need to make the speech api call once.

Also, my 'puter kept changing A.M. to "A meters", go figure, who'd a thunk the auto abbreviation expansion would go metric for my locale. I just changed that part of the string to be "A. M", adding a space before the M and removing the last period.

Nice to have this little script in my toolbox, I'm sure it will be useful down the road.


/* If you think the problem is bad now, wait until I fix it! */

Super_Nerd (author)theformatter2011-02-02

I never knew that because I don't understand string commands. Thanks! :) BTW did you ever notice how it would say things like February two instead of February second? Thats gonna be one long if then else end if statment. :P About A.M. my speech engine doesn't do that. ? Well at least you could fix it on your own. ;)

About This Instructable




Bio: I find a quote from Bill Gates makes a very good description. "Be nice to nerds. Chances are you'll end up working for one."
More by Super_Nerd:Make an assistant for your computer in 5 minutesTrack Computer Usage in 2.5 minutesHow to be a MAD Scientist! MU-AH HA HA HA!
Add instructable to: