Ik zou graag voor mijn VB applicatie eenvoudig naar het registry willen kunnen schrijven....
Nu heb ik enige tijd geleden, de volgende Registry Class gevonden.... Helaas is het zo bij deze class dat je alleen kan lezen/schrijven naar String registry key's.... Ik zou graag ook de mogelijkheid willen om naar DWORD en Binary (Weet alleen nog niet waarvoor) values kunnen schrijven....<blockquote><font size="1" face="verdana, arial, helvetica">php:</font><hr><pre><font face="courier, fixedsys, lucida console"><code><font color="#000000"><font color="#0000BB"><?
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
''
' Copyright ©1997-99'
' Karl E. Peterson, All Rights Reserved'
'------------------------------------------------------------------------------------------'
''
' NOTE:'
' -----'
' You are free to use this code within your own applications, but you'
' are expressly forbidden from selling or otherwise distributing this'
' source code without prior written consent.'
''
'------------------------------------------------------------------------------------------'
' Properties:'
'------------------------------------------------------------------------------------------'
' - Company'
' - Appname'
''
'------------------------------------------------------------------------------------------'
' Methods:'
'------------------------------------------------------------------------------------------'
' - DeleteSettings'
' - GetAllSettings'
' - GetSetting'
' - SaveSetting'
' - Subkey'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Option Explicit
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' API Declarations (Win32 Registry functions)'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegOpenKeyEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegOpenKeyExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpSubKey </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal ulOptions </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal samDesired </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">phkResult </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegCreateKeyEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegCreateKeyExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpSubKey </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal Reserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpClass </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal dwOptions </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal samDesired </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpSecurityAttributes </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">phkResult </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpdwDisposition </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegQueryValueEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegQueryValueExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpType </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpData </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">lpcbData </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long </font><font color="#DD0000">' Note that if you declare the lpData parameter as String, you must pass it By Value.'
</font><font color="#0000BB">Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegQueryInfoKey Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegQueryInfoKeyA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpClass </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbClass </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcSubKeys </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxSubKeyLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxClassLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcValues </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxValueNameLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxValueLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbSecurityDescriptor </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpftLastWriteTime </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegEnumKeyEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegEnumKeyExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal dwIndex </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbName </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpClass </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbClass </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpftLastWriteTime </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegEnumValue Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegEnumValueA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal dwIndex </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbValueName </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpType </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpData </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">lpcbData </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegSetValueEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegSetValueExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal Reserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal dwType </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpData </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">ByVal cbData </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long </font><font color="#DD0000">' Note that if you declare the lpData parameter as String, you must pass it By Value.'
</font><font color="#0000BB">Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegDeleteKey Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegDeleteKeyA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpSubKey </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegDeleteValue Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegDeleteValueA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegCloseKey Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Constants'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_CLASSES_ROOT </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000000
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_CURRENT_USER </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000001
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_LOCAL_MACHINE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000002
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_USERS </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000003
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_PERFORMANCE_DATA </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000004
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_CURRENT_CONFIG </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000005
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_DYN_DATA </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000006
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Reg result codes'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_CREATED_NEW_KEY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H1 </font><font color="#DD0000">' New Registry Key created'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPENED_EXISTING_KEY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H2 </font><font color="#DD0000">' Existing Key opened'
'------------------------------------------------------------------------------------------'
' Reg Create Type Values...'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_RESERVED </font><font color="#007700">= </font><font color="#0000BB">0 </font><font color="#DD0000">' Parameter is reserved'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_NON_VOLATILE </font><font color="#007700">= </font><font color="#0000BB">0 </font><font color="#DD0000">' Key is preserved when system is rebooted'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_VOLATILE </font><font color="#007700">= </font><font color="#0000BB">1 </font><font color="#DD0000">' Key is not preserved when system is rebooted'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_CREATE_LINK </font><font color="#007700">= </font><font color="#0000BB">2 </font><font color="#DD0000">' Created key is a symbolic link'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_BACKUP_RESTORE </font><font color="#007700">= </font><font color="#0000BB">4 </font><font color="#DD0000">' open for backup or restore'
'------------------------------------------------------------------------------------------'
' Reg Key Security Options'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">DELETE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H10000
Private </font><font color="#007700">Const </font><font color="#0000BB">READ_CONTROL </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H20000
Private </font><font color="#007700">Const </font><font color="#0000BB">WRITE_DAC </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H40000
Private </font><font color="#007700">Const </font><font color="#0000BB">WRITE_OWNER </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000
Private </font><font color="#007700">Const </font><font color="#0000BB">SYNCHRONIZE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H100000
Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_READ </font><font color="#007700">= (</font><font color="#0000BB">READ_CONTROL</font><font color="#007700">)
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_WRITE </font><font color="#007700">= (</font><font color="#0000BB">READ_CONTROL</font><font color="#007700">)
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_EXECUTE </font><font color="#007700">= (</font><font color="#0000BB">READ_CONTROL</font><font color="#007700">)
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_REQUIRED </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">HF0000
Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_ALL </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H1F0000
Private </font><font color="#007700">Const </font><font color="#0000BB">SPECIFIC_RIGHTS_ALL </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">HFFFF
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_QUERY_VALUE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H1
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_SET_VALUE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H2
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_CREATE_SUB_KEY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H4
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_ENUMERATE_SUB_KEYS </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H8
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_NOTIFY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H10
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_CREATE_LINK </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H20
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_READ </font><font color="#007700">= ((</font><font color="#0000BB">STANDARD_RIGHTS_READ </font><font color="#007700">Or </font><font color="#0000BB">KEY_QUERY_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_ENUMERATE_SUB_KEYS </font><font color="#007700">Or </font><font color="#0000BB">KEY_NOTIFY</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_WRITE </font><font color="#007700">= ((</font><font color="#0000BB">STANDARD_RIGHTS_WRITE </font><font color="#007700">Or </font><font color="#0000BB">KEY_SET_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_CREATE_SUB_KEY</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_ALL_ACCESS </font><font color="#007700">= ((</font><font color="#0000BB">STANDARD_RIGHTS_ALL </font><font color="#007700">Or </font><font color="#0000BB">KEY_QUERY_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_SET_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_CREATE_SUB_KEY </font><font color="#007700">Or </font><font color="#0000BB">KEY_ENUMERATE_SUB_KEYS </font><font color="#007700">Or </font><font color="#0000BB">KEY_NOTIFY </font><font color="#007700">Or </font><font color="#0000BB">KEY_CREATE_LINK</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_EXECUTE </font><font color="#007700">= ((</font><font color="#0000BB">KEY_READ</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">ERROR_SUCCESS </font><font color="#007700">= </font><font color="#0000BB">0</font><font color="#007700">&</font><font color="#0000BB">amp</font><font color="#007700">;
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">ERROR_MORE_DATA </font><font color="#007700">= </font><font color="#0000BB">234
Private </font><font color="#007700">Const </font><font color="#0000BB">ERROR_NO_MORE_ITEMS </font><font color="#007700">= </font><font color="#0000BB">259
Private </font><font color="#007700">Const </font><font color="#0000BB">REG_SZ </font><font color="#007700">= </font><font color="#0000BB">1 </font><font color="#DD0000">' Unicode nul terminated string'
'------------------------------------------------------------------------------------------'
' Private member variables'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private m_Company </font><font color="#007700">As </font><font color="#0000BB">String
Private m_AppName </font><font color="#007700">As </font><font color="#0000BB">String
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Private class constants'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">defCompany </font><font color="#007700">As </font><font color="#0000BB">String </font><font color="#007700">= </font><font color="#DD0000">"Woudsma Online"
'------------------------------------------------------------------------------------------'
' Initialize and Terminate'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private Sub Class_Initialize</font><font color="#007700">()
</font><font color="#0000BB">m_Company </font><font color="#007700">= </font><font color="#0000BB">defCompany
m_AppName </font><font color="#007700">= </font><font color="#0000BB">App</font><font color="#007700">.</font><font color="#0000BB">ProductName
End Sub
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Public Properties'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Public Property Let Company</font><font color="#007700">(</font><font color="#0000BB">ByVal NewVal </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">)
If </font><font color="#0000BB">Len</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">) </font><font color="#0000BB">Then
m_Company </font><font color="#007700">= </font><font color="#0000BB">Trim</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">)
Else
</font><font color="#0000BB">m_Company </font><font color="#007700">= </font><font color="#0000BB">defCompany
End </font><font color="#007700">If
</font><font color="#0000BB">End Property
Public Property Get Company</font><font color="#007700">() As </font><font color="#0000BB">String
Company </font><font color="#007700">= </font><font color="#0000BB">m_Company
End Property
Public Property Let AppName</font><font color="#007700">(</font><font color="#0000BB">ByVal NewVal </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">)
If </font><font color="#0000BB">Len</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">) </font><font color="#0000BB">Then
m_AppName </font><font color="#007700">= </font><font color="#0000BB">Trim</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">)
Else
</font><font color="#0000BB">m_AppName </font><font color="#007700">= </font><font color="#0000BB">App</font><font color="#007700">.</font><font color="#0000BB">ProductName
End </font><font color="#007700">If
</font><font color="#0000BB">End Property
Public Property Get AppName</font><font color="#007700">() As </font><font color="#0000BB">String
AppName </font><font color="#007700">= </font><font color="#0000BB">m_AppName
End Property
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Public Methods'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Public </font><font color="#007700">Function </font><font color="#0000BB">DeleteSetting</font><font color="#007700">(</font><font color="#0000BB">ByVal Section </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">_
Optional ByVal Key </font><font color="#007700">As </font><font color="#0000BB">String </font><font color="#007700">= </font><font color="#DD0000">""</font><font color="#007700">) As </font><font color="#0000BB">Boolean
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Section Required. String expression containing the name of the section where the key setting'
' is being deleted. If only section is provided, the specified section is deleted along'
' with all related key settings.'
' Key Optional. String expression containing the name of the key setting being deleted.'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Dim nRet </font><font color="#007700">As </font><font color="#0000BB">Long
Dim hKey </font><font color="#007700">As </font><font color="#0000BB">Long
</font><font color="#007700">If </font><font color="#0000BB">Len</font><font color="#007700">(</font><font color="#0000BB">Key</font><font color="#007700">) </font><font color="#0000BB">Then
</font><font color="#DD0000">' Open key'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegOpenKeyEx</font><font color="#007700">(</font><font color="#0000BB">HKEY_CURRENT_USER</font><font color="#007700">, </font><font color="#0000BB">SubKey</font><font color="#007700">(</font><font color="#0000BB">Section</font><font color="#007700">), </font><font color="#0000BB">0</font><font color="#007700">&</font><font color="#0000BB">amp</font><font color="#007700">;, </font><font color="#0000BB">KEY_ALL_ACCESS</font><font color="#007700">, </font><font color="#0000BB">hKey</font><font color="#007700">)
If </font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">ERROR_SUCCESS Then
</font><font color="#DD0000">' Set appropriate value for default query'
</font><font color="#007700">If </font><font color="#0000BB">Key </font><font color="#007700">= </font><font color="#DD0000">"*" </font><font color="#0000BB">Then Key </font><font color="#007700">= </font><font color="#0000BB">vbNullString
</font><font color="#DD0000">' Delete the requested value'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegDeleteValue</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">, </font><font color="#0000BB">Key</font><font color="#007700">)
</font><font color="#0000BB">Call RegCloseKey</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">)
</font><font color="#0000BB">End </font><font color="#007700">If
Else
</font><font color="#DD0000">' Open parent key'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegOpenKeyEx</font><font color="#007700">(</font><font color="#0000BB">HKEY_CURRENT_USER</font><font color="#007700">, </font><font color="#0000BB">SubKey</font><font color="#007700">(), </font><font color="#0000BB">0</font><font color="#007700">&</font><font color="#0000BB">amp</font><font color="#007700">;, </font><font color="#0000BB">KEY_ALL_ACCESS</font><font color="#007700">, </font><font color="#0000BB">hKey</font><font color="#007700">)
If </font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">ERROR_SUCCESS Then
</font><font color="#DD0000">' Attempt to delete whole section'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegDeleteKey</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">, </font><font color="#0000BB">Section</font><font color="#007700">)
</font><font color="#0000BB">Call RegCloseKey</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">)
</font><font color="#0000BB">End </font><font color="#007700">If
</font><font color="#0000BB">End </font><font color="#007700">If
</font><font color="#0000BB">DeleteSetting </font><font color="#007700">= (</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">ERROR_SUCCESS</font><font color="#007700">)
</font><font color="#0000BB">End </font><font color="#007700">Function
</font><font color="#0000BB">Public </font><font color="#007700">Function </font><font color="#0000BB">GetAllSettings</font><font color="#007700">(</font><font color="#0000BB">ByVal Section </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">) As </font><font color="#0000BB">Variant
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Section Required. String expression containing the name of the section'
' to enumerate.'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Dim nRet </font><font color="#007700">As </font><font color="#0000BB">Long
Dim hKey </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nMaxValueNameLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nMaxValueLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nValueNameLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nValueLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nType </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nIndex </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nStrings </font><font color="#007700">As </font><font color="#0000BB">Long
Dim ValueName </font><font color="#007700">As </font><font color="#0000BB">String
Dim Value </font><font color="#007700">As </font><font color="#0000BB">String
Dim Values</font><font color="#007700">() As </font><font color="#0000BB">String
Dim Results</font><font color="#007700">() As </font><font color="#0000BB">String
Dim i </font><font color="#007700">As </fon
Nu heb ik enige tijd geleden, de volgende Registry Class gevonden.... Helaas is het zo bij deze class dat je alleen kan lezen/schrijven naar String registry key's.... Ik zou graag ook de mogelijkheid willen om naar DWORD en Binary (Weet alleen nog niet waarvoor) values kunnen schrijven....<blockquote><font size="1" face="verdana, arial, helvetica">php:</font><hr><pre><font face="courier, fixedsys, lucida console"><code><font color="#000000"><font color="#0000BB"><?
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
''
' Copyright ©1997-99'
' Karl E. Peterson, All Rights Reserved'
'------------------------------------------------------------------------------------------'
''
' NOTE:'
' -----'
' You are free to use this code within your own applications, but you'
' are expressly forbidden from selling or otherwise distributing this'
' source code without prior written consent.'
''
'------------------------------------------------------------------------------------------'
' Properties:'
'------------------------------------------------------------------------------------------'
' - Company'
' - Appname'
''
'------------------------------------------------------------------------------------------'
' Methods:'
'------------------------------------------------------------------------------------------'
' - DeleteSettings'
' - GetAllSettings'
' - GetSetting'
' - SaveSetting'
' - Subkey'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Option Explicit
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' API Declarations (Win32 Registry functions)'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegOpenKeyEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegOpenKeyExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpSubKey </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal ulOptions </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal samDesired </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">phkResult </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegCreateKeyEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegCreateKeyExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpSubKey </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal Reserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpClass </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal dwOptions </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal samDesired </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpSecurityAttributes </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">phkResult </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpdwDisposition </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegQueryValueEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegQueryValueExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpType </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpData </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">lpcbData </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long </font><font color="#DD0000">' Note that if you declare the lpData parameter as String, you must pass it By Value.'
</font><font color="#0000BB">Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegQueryInfoKey Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegQueryInfoKeyA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpClass </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbClass </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcSubKeys </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxSubKeyLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxClassLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcValues </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxValueNameLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbMaxValueLen </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpcbSecurityDescriptor </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpftLastWriteTime </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegEnumKeyEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegEnumKeyExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal dwIndex </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbName </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpClass </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbClass </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpftLastWriteTime </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegEnumValue Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegEnumValueA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal dwIndex </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">lpcbValueName </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpReserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpType </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpData </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">lpcbData </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegSetValueEx Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegSetValueExA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">ByVal Reserved </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal dwType </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">lpData </font><font color="#007700">As </font><font color="#0000BB">Any</font><font color="#007700">, </font><font color="#0000BB">ByVal cbData </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long </font><font color="#DD0000">' Note that if you declare the lpData parameter as String, you must pass it By Value.'
</font><font color="#0000BB">Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegDeleteKey Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegDeleteKeyA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpSubKey </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegDeleteValue Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#0000BB">Alias </font><font color="#DD0000">"RegDeleteValueA" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">, </font><font color="#0000BB">ByVal lpValueName </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">) As </font><font color="#0000BB">Long
Private </font><font color="#007700">Declare Function </font><font color="#0000BB">RegCloseKey Lib </font><font color="#DD0000">"advapi32.dll" </font><font color="#007700">(</font><font color="#0000BB">ByVal hKey </font><font color="#007700">As </font><font color="#0000BB">Long</font><font color="#007700">) As </font><font color="#0000BB">Long
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Constants'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_CLASSES_ROOT </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000000
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_CURRENT_USER </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000001
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_LOCAL_MACHINE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000002
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_USERS </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000003
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_PERFORMANCE_DATA </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000004
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_CURRENT_CONFIG </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000005
Private </font><font color="#007700">Const </font><font color="#0000BB">HKEY_DYN_DATA </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000006
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Reg result codes'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_CREATED_NEW_KEY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H1 </font><font color="#DD0000">' New Registry Key created'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPENED_EXISTING_KEY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H2 </font><font color="#DD0000">' Existing Key opened'
'------------------------------------------------------------------------------------------'
' Reg Create Type Values...'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_RESERVED </font><font color="#007700">= </font><font color="#0000BB">0 </font><font color="#DD0000">' Parameter is reserved'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_NON_VOLATILE </font><font color="#007700">= </font><font color="#0000BB">0 </font><font color="#DD0000">' Key is preserved when system is rebooted'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_VOLATILE </font><font color="#007700">= </font><font color="#0000BB">1 </font><font color="#DD0000">' Key is not preserved when system is rebooted'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_CREATE_LINK </font><font color="#007700">= </font><font color="#0000BB">2 </font><font color="#DD0000">' Created key is a symbolic link'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">REG_OPTION_BACKUP_RESTORE </font><font color="#007700">= </font><font color="#0000BB">4 </font><font color="#DD0000">' open for backup or restore'
'------------------------------------------------------------------------------------------'
' Reg Key Security Options'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">DELETE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H10000
Private </font><font color="#007700">Const </font><font color="#0000BB">READ_CONTROL </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H20000
Private </font><font color="#007700">Const </font><font color="#0000BB">WRITE_DAC </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H40000
Private </font><font color="#007700">Const </font><font color="#0000BB">WRITE_OWNER </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H80000
Private </font><font color="#007700">Const </font><font color="#0000BB">SYNCHRONIZE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H100000
Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_READ </font><font color="#007700">= (</font><font color="#0000BB">READ_CONTROL</font><font color="#007700">)
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_WRITE </font><font color="#007700">= (</font><font color="#0000BB">READ_CONTROL</font><font color="#007700">)
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_EXECUTE </font><font color="#007700">= (</font><font color="#0000BB">READ_CONTROL</font><font color="#007700">)
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_REQUIRED </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">HF0000
Private </font><font color="#007700">Const </font><font color="#0000BB">STANDARD_RIGHTS_ALL </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H1F0000
Private </font><font color="#007700">Const </font><font color="#0000BB">SPECIFIC_RIGHTS_ALL </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">HFFFF
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_QUERY_VALUE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H1
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_SET_VALUE </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H2
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_CREATE_SUB_KEY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H4
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_ENUMERATE_SUB_KEYS </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H8
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_NOTIFY </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H10
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_CREATE_LINK </font><font color="#007700">= &</font><font color="#0000BB">amp</font><font color="#007700">;</font><font color="#0000BB">H20
Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_READ </font><font color="#007700">= ((</font><font color="#0000BB">STANDARD_RIGHTS_READ </font><font color="#007700">Or </font><font color="#0000BB">KEY_QUERY_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_ENUMERATE_SUB_KEYS </font><font color="#007700">Or </font><font color="#0000BB">KEY_NOTIFY</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_WRITE </font><font color="#007700">= ((</font><font color="#0000BB">STANDARD_RIGHTS_WRITE </font><font color="#007700">Or </font><font color="#0000BB">KEY_SET_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_CREATE_SUB_KEY</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_ALL_ACCESS </font><font color="#007700">= ((</font><font color="#0000BB">STANDARD_RIGHTS_ALL </font><font color="#007700">Or </font><font color="#0000BB">KEY_QUERY_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_SET_VALUE </font><font color="#007700">Or </font><font color="#0000BB">KEY_CREATE_SUB_KEY </font><font color="#007700">Or </font><font color="#0000BB">KEY_ENUMERATE_SUB_KEYS </font><font color="#007700">Or </font><font color="#0000BB">KEY_NOTIFY </font><font color="#007700">Or </font><font color="#0000BB">KEY_CREATE_LINK</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">KEY_EXECUTE </font><font color="#007700">= ((</font><font color="#0000BB">KEY_READ</font><font color="#007700">) And (</font><font color="#0000BB">Not SYNCHRONIZE</font><font color="#007700">))
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">ERROR_SUCCESS </font><font color="#007700">= </font><font color="#0000BB">0</font><font color="#007700">&</font><font color="#0000BB">amp</font><font color="#007700">;
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">ERROR_MORE_DATA </font><font color="#007700">= </font><font color="#0000BB">234
Private </font><font color="#007700">Const </font><font color="#0000BB">ERROR_NO_MORE_ITEMS </font><font color="#007700">= </font><font color="#0000BB">259
Private </font><font color="#007700">Const </font><font color="#0000BB">REG_SZ </font><font color="#007700">= </font><font color="#0000BB">1 </font><font color="#DD0000">' Unicode nul terminated string'
'------------------------------------------------------------------------------------------'
' Private member variables'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private m_Company </font><font color="#007700">As </font><font color="#0000BB">String
Private m_AppName </font><font color="#007700">As </font><font color="#0000BB">String
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Private class constants'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private </font><font color="#007700">Const </font><font color="#0000BB">defCompany </font><font color="#007700">As </font><font color="#0000BB">String </font><font color="#007700">= </font><font color="#DD0000">"Woudsma Online"
'------------------------------------------------------------------------------------------'
' Initialize and Terminate'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Private Sub Class_Initialize</font><font color="#007700">()
</font><font color="#0000BB">m_Company </font><font color="#007700">= </font><font color="#0000BB">defCompany
m_AppName </font><font color="#007700">= </font><font color="#0000BB">App</font><font color="#007700">.</font><font color="#0000BB">ProductName
End Sub
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Public Properties'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Public Property Let Company</font><font color="#007700">(</font><font color="#0000BB">ByVal NewVal </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">)
If </font><font color="#0000BB">Len</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">) </font><font color="#0000BB">Then
m_Company </font><font color="#007700">= </font><font color="#0000BB">Trim</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">)
Else
</font><font color="#0000BB">m_Company </font><font color="#007700">= </font><font color="#0000BB">defCompany
End </font><font color="#007700">If
</font><font color="#0000BB">End Property
Public Property Get Company</font><font color="#007700">() As </font><font color="#0000BB">String
Company </font><font color="#007700">= </font><font color="#0000BB">m_Company
End Property
Public Property Let AppName</font><font color="#007700">(</font><font color="#0000BB">ByVal NewVal </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">)
If </font><font color="#0000BB">Len</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">) </font><font color="#0000BB">Then
m_AppName </font><font color="#007700">= </font><font color="#0000BB">Trim</font><font color="#007700">(</font><font color="#0000BB">NewVal</font><font color="#007700">)
Else
</font><font color="#0000BB">m_AppName </font><font color="#007700">= </font><font color="#0000BB">App</font><font color="#007700">.</font><font color="#0000BB">ProductName
End </font><font color="#007700">If
</font><font color="#0000BB">End Property
Public Property Get AppName</font><font color="#007700">() As </font><font color="#0000BB">String
AppName </font><font color="#007700">= </font><font color="#0000BB">m_AppName
End Property
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Public Methods'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Public </font><font color="#007700">Function </font><font color="#0000BB">DeleteSetting</font><font color="#007700">(</font><font color="#0000BB">ByVal Section </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">, </font><font color="#0000BB">_
Optional ByVal Key </font><font color="#007700">As </font><font color="#0000BB">String </font><font color="#007700">= </font><font color="#DD0000">""</font><font color="#007700">) As </font><font color="#0000BB">Boolean
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Section Required. String expression containing the name of the section where the key setting'
' is being deleted. If only section is provided, the specified section is deleted along'
' with all related key settings.'
' Key Optional. String expression containing the name of the key setting being deleted.'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Dim nRet </font><font color="#007700">As </font><font color="#0000BB">Long
Dim hKey </font><font color="#007700">As </font><font color="#0000BB">Long
</font><font color="#007700">If </font><font color="#0000BB">Len</font><font color="#007700">(</font><font color="#0000BB">Key</font><font color="#007700">) </font><font color="#0000BB">Then
</font><font color="#DD0000">' Open key'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegOpenKeyEx</font><font color="#007700">(</font><font color="#0000BB">HKEY_CURRENT_USER</font><font color="#007700">, </font><font color="#0000BB">SubKey</font><font color="#007700">(</font><font color="#0000BB">Section</font><font color="#007700">), </font><font color="#0000BB">0</font><font color="#007700">&</font><font color="#0000BB">amp</font><font color="#007700">;, </font><font color="#0000BB">KEY_ALL_ACCESS</font><font color="#007700">, </font><font color="#0000BB">hKey</font><font color="#007700">)
If </font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">ERROR_SUCCESS Then
</font><font color="#DD0000">' Set appropriate value for default query'
</font><font color="#007700">If </font><font color="#0000BB">Key </font><font color="#007700">= </font><font color="#DD0000">"*" </font><font color="#0000BB">Then Key </font><font color="#007700">= </font><font color="#0000BB">vbNullString
</font><font color="#DD0000">' Delete the requested value'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegDeleteValue</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">, </font><font color="#0000BB">Key</font><font color="#007700">)
</font><font color="#0000BB">Call RegCloseKey</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">)
</font><font color="#0000BB">End </font><font color="#007700">If
Else
</font><font color="#DD0000">' Open parent key'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegOpenKeyEx</font><font color="#007700">(</font><font color="#0000BB">HKEY_CURRENT_USER</font><font color="#007700">, </font><font color="#0000BB">SubKey</font><font color="#007700">(), </font><font color="#0000BB">0</font><font color="#007700">&</font><font color="#0000BB">amp</font><font color="#007700">;, </font><font color="#0000BB">KEY_ALL_ACCESS</font><font color="#007700">, </font><font color="#0000BB">hKey</font><font color="#007700">)
If </font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">ERROR_SUCCESS Then
</font><font color="#DD0000">' Attempt to delete whole section'
</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">RegDeleteKey</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">, </font><font color="#0000BB">Section</font><font color="#007700">)
</font><font color="#0000BB">Call RegCloseKey</font><font color="#007700">(</font><font color="#0000BB">hKey</font><font color="#007700">)
</font><font color="#0000BB">End </font><font color="#007700">If
</font><font color="#0000BB">End </font><font color="#007700">If
</font><font color="#0000BB">DeleteSetting </font><font color="#007700">= (</font><font color="#0000BB">nRet </font><font color="#007700">= </font><font color="#0000BB">ERROR_SUCCESS</font><font color="#007700">)
</font><font color="#0000BB">End </font><font color="#007700">Function
</font><font color="#0000BB">Public </font><font color="#007700">Function </font><font color="#0000BB">GetAllSettings</font><font color="#007700">(</font><font color="#0000BB">ByVal Section </font><font color="#007700">As </font><font color="#0000BB">String</font><font color="#007700">) As </font><font color="#0000BB">Variant
</font><font color="#DD0000">'------------------------------------------------------------------------------------------'
' Section Required. String expression containing the name of the section'
' to enumerate.'
'------------------------------------------------------------------------------------------'
</font><font color="#0000BB">Dim nRet </font><font color="#007700">As </font><font color="#0000BB">Long
Dim hKey </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nMaxValueNameLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nMaxValueLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nValueNameLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nValueLen </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nType </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nIndex </font><font color="#007700">As </font><font color="#0000BB">Long
Dim nStrings </font><font color="#007700">As </font><font color="#0000BB">Long
Dim ValueName </font><font color="#007700">As </font><font color="#0000BB">String
Dim Value </font><font color="#007700">As </font><font color="#0000BB">String
Dim Values</font><font color="#007700">() As </font><font color="#0000BB">String
Dim Results</font><font color="#007700">() As </font><font color="#0000BB">String
Dim i </font><font color="#007700">As </fon