Solved

Setting 3D Text Screen Saver

Posted on 2002-05-29
3
232 Views
Last Modified: 2010-05-02
Does anyone know how to set the text of the 3D Text screen saver via code? I have a request from an engaged co-worker who wants her screen saver to dynamically display the number of days to her wedding. I figure I could write a small vb program and put it in her startup folder, and it would be able to update the text when she logs into her machine in the morning.

TIA,

:) dapperry
0
Comment
Question by:dapperry
3 Comments
 

Accepted Solution

by:
CarlJWhite earned 75 total points
ID: 7043980
This alters the registry value of 3d screen saver text

Check the registry path I used is the same on her machine.

You need code to work out how many days are left to the big day so it changes the value each day

You also need to add the reference Windows Script Host Model
(Project>>References)


Dim wshReadRegistry     As IWshShell
Set wshReadRegistry = CreateObject("Wscript.Shell")


Dim strRegistryPath     As String

'Get the path from the Registry
On Error Resume Next

   'Build path to key
   
   strRegistryPath = "HKEY_CURRENT_USER\Control Panel\Screen Saver.3DText\Text"
     
     
   wshReadRegistry.RegWrite strRegistryPath, "newvaluegoeshere"
   
   Set wshReadRegistry = Nothing
   
       

0
 
LVL 28

Expert Comment

by:vinnyd79
ID: 7044543
This does the same thing without using the windows scripting host:

Option Explicit
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal Hkey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal Hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal Hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Const HKEY_CURRENT_USER = &H80000001
Private Const ERROR_SUCCESS = 0&
Private Const REG_SZ = 1
Private X As Long

Private Sub SaveString(Hkey As Long, strpath As String, strValue As String, strdata As String)
    Dim keyhand As Long
    Dim r As Long
    X = RegCreateKey(Hkey, strpath, keyhand)
    X = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
    X = RegCloseKey(keyhand)
End Sub

Private Sub Command1_Click()
Call SaveString(HKEY_CURRENT_USER, "Control Panel\Screen Saver.3DText", "Text", "Days till wedding!")
End Sub
0
 
LVL 3

Author Comment

by:dapperry
ID: 7044801
I tried CarlJWhite's method, and it works just fine. Thanks.

:) dapperry
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now