Home All Groups Group Topic Archive Search About

cRegistry problems read/writing to (Default)

Author
28 Jan 2006 10:23 PM
MatthewBrown
Hello,

I'm attempting to read the value of a default into a variable.  It's
simply not working.


Private Sub Command1_Click()

Dim cr As New cRegistry

        With cr
            .ClassKey = HKEY_CURRENT_USER
            .SectionKey =
"HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.Current"
            .ValueKey = "" 'value is (Default)
            .ValueType = REG_SZ
            OldNavigationSound = .Value
        End With

Text1.Text = OldNavigationSound

End Sub


Any suggestions?


OldNavigationSound is a Global.


Thanks,

Matt

Author
28 Jan 2006 10:37 PM
MatthewBrown
BAHHHHH! Typo.

Private Sub Command1_Click()

Dim cr As New cRegistry

        With cr
            .ClassKey = HKEY_CURRENT_USER
            .SectionKey =
"AppEvents\Schemes\Apps\Explorer\Navigating\.Current"
            .ValueKey = "" 'value is (Default)
            .ValueType = REG_SZ
            OldNavigationSound = .Value
        End With

Text1.Text = OldNavigationSound

End Sub
Author
29 Jan 2006 1:42 AM
Tom Esh
On 28 Jan 2006 14:23:41 -0800, MatthewBr***@gmail.com wrote:

Show quoteHide quote
>I'm attempting to read the value of a default into a variable.  It's
>simply not working.
>
>
>Private Sub Command1_Click()
>
>Dim cr As New cRegistry
>
>        With cr
>            .ClassKey = HKEY_CURRENT_USER
>            .SectionKey =
>"HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.Current"
>            .ValueKey = "" 'value is (Default)
>            .ValueType = REG_SZ
>            OldNavigationSound = .Value
>        End With
>
>Text1.Text = OldNavigationSound
>
>End Sub
>
>
>Any suggestions?

Hard to tell for sure without seeing code behind cRegistry, however a
~guess~ would be .ValueKey. The default valuename for a key is not
really an empty string (even though it ~looks~ that way in Regedit),
but rather a NULL (in Api lingo), or typically vbNullString with VB.
It's possible the code in cRegistry is just passing the empty string
to the underlying Api. I know in my own reg class I make a special
case exception for "" to specify the default valuename. Setting the
..ValueKey prop to vbNullString ~might~ work (worth a try anyway), but
it may still end up as an empty string by the time it's washed through
the arg and the cRegistry code passes it along to the Api. Anyway this
is just a guess, but if that's whats happening you may have to resort
to using the Reg Api directly or a component that specifically
provides a way to set te default valuename.


-Tom
MVP - Visual Basic
(please post replies to the newsgroup)
Author
29 Jan 2006 2:09 AM
MatthewBrown
thanks for your response.  I was having a lot of trouble understanding
calling with variables.

I'm in the middle of testing storing the original navigation sound in a
public variable and then clearing it while the program is running, then
setting it back to original.


It is stated in cRegistry documentation that to get/set (Default)
values you need to use a "zero length variable."  I was just saying I'm
a moron and set the SectionKey =
"HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.Current"

with the HK in there.  Took me over an hour to figure it out.  And
guess what?  I did it again during testing, at least it took me a
half-hour to figure it out this time. :P


Thanks,

Matt
Author
29 Jan 2006 5:26 AM
Ken Halter
"Tom Esh" <tjeshGibber***@suscom.net> wrote in message
news:ut4ot1530srcil9eh9u9c6ru3rsthce4cg@4ax.com...
>
> Hard to tell for sure without seeing code behind cRegistry,.........

Great registry class.

Complete Registry control
http://www.vbaccelerator.com/home/VB/Code/Libraries/Registry_and_Ini_Files/Complete_Registry_Control/article.asp

--
Ken Halter - MS-MVP-VB - Please keep all discussions in the groups..
DLL Hell problems? Try ComGuard - http://www.vbsight.com/ComGuard.htm
Freeware 4 color Gradient Frame? http://www.vbsight.com/GradFrameCTL.htm