2
1
I work for 12 hour shifts and I would like to make myself a screen saver that would show
"Going home in $time"
where $time
is the current shift finish - current time.
Is something like this possible ?
2
1
I work for 12 hour shifts and I would like to make myself a screen saver that would show
"Going home in $time"
where $time
is the current shift finish - current time.
Is something like this possible ?
1
This VBScript will automatically update the 3D Text screensaver text with the time left before your shift ends. Save the following text in a file called UpdateScreensaver.vbs and modify the line with FINISH_TIME
to have the correct end time:
Option Explicit
'
' Simple vbscript to update the 3D Text screensaver with
' the number of hours left before a shift finishes.
'
' FINISH_TIME is the 24-hour time when you finish.
Const FINISH_TIME = "21:15:00"
' REGISTRY_KEY is the key to update with the time. This will be
' different if you aren't using the 3D text screensaver.
Const REGISTRY_KEY = "HKCU\Software\Microsoft\Windows\CurrentVersion\Screensavers\ssText3d\DisplayString"
' You don't need to change anything below here!
' ==============================================================
Dim iHours, iMins, sMessage, sUnit
iMins = DateDiff("n", Now(), FormatDateTime(Now(), 2) & " " & FINISH_TIME)
If iMins < 0 Then
' Assuming shift work - so the finish time is tomorrow, not today.
iMins = DateDiff("n", Now(), FormatDateTime(DateAdd("d", 1, Now()), 2) & " " & FINISH_TIME)
End If
iHours = Int(iMins / 60) : iMins = iMins Mod 60
If iHours > 20 Then
sMessage = "Shift over!"
Else
If iHours > 0 Then
sMessage = iHours
If iMins > 45 Then
sMessage = sMessage & Chr(190) & " hours"
ElseIf iMins > 30 Then
sMessage = sMessage & Chr(189) & " hours"
ElseIf iMins > 15 Then
sMessage = sMessage & Chr(188) & " hours"
ElseIf iHours > 1 Then
sMessage = sMessage & " hours"
Else
sMessage = sMessage & " hour"
End If
Else
sMessage = sMessage & iMins & " minute"
If iMins <> 1 Then sMessage = sMessage & "s"
End If
sMessage = sMessage & " to go!"
End If
Dim wsh : Set wsh = CreateObject("WScript.Shell")
wsh.RegWrite REGISTRY_KEY, sMessage
Set wsh = Nothing
Now double click on the file to run it and nothing should happen. This is good. Now go and check the settings for the 3D Text screensaver and you should see that it displays the hours left before your shift ends.
All you need to do now is set up a scheduled task to run this every 15 minutes (or so) and your screensaver will be kept up to date with the number of hours left.
Some notes:
REGISTRY_KEY
to match that location.Enjoy.
This is awesome :) Thanks a lot. Although, I would like it to have it updating in real time it's still ok. Maybe I will try to implement it somehow later on. – Patryk – 2012-07-04T08:00:45.950
2
Windows Screensaver's are basically just executables with the .scr extension, write an program in C or C++ for that, pretty simple enough.
1
I found that instead of using Visual Studio there are other ways like scripting in AutoIT.
Go to the the Downloads section on the website. It doesn't require membership either. Go to the download for the AutoIT application coder and compiler etc. Then search on the downloads page I think its like the misc. section and like the 3rd page in there is a thread called "ScreenSaver Demo - Matrix Included" that contains the source code as well as an example for you to build.
So you open the compiler, insert the script (even create your own icon), click Compile (ensure the script is not in the same directory as the place where you want to place the .exe).
Compile it and it will create an .exe file of your mane choice i.e. Matrix. Then you rename to .scr extension and drop it in the system32 folder and it will show up in the options when you go to personalise -> screensavers. The first time I ran it it didn't like it and would not let me click options, how ever after rebooting it works flawlessly.
For information on how it was compiled check the thread in the forums of AutoIT called Screensaver UDF.
1The reason links are often frowned upon is because they go stale - in this case linking to the website in question won't be frowned upon, since it does look like in this case, it would likely be alright. – Journeyman Geek – 2012-05-28T03:27:32.590
3If you're working on the machine, why would a screen saver be coming up at all? Or do you mean wallpaper? – Shinrai – 2012-03-20T22:52:06.497
@Shinrai I meant screensaver - When I am leaving the desk the text would appear. – Patryk – 2012-03-21T03:26:24.460
I just thought the request odd because if you're not at the desk, it might be difficult to see the text at all. That's why I wanted to clarify. Thanks. – Shinrai – 2012-03-21T03:47:34.317