27. april 2004 - 20:01Der er
7 kommentarer og 1 løsning
Gemme i registreringsdatabasen
Jeg er ret ny på dette område og har behov for noget hjælp.
Jeg har lavet en FORM som indeholder følgende TextBoxe:
TextBox1 (indhold Torben) TextBox2 (indhold 7034)
Den tekst som jeg skriver i disse textbox skal gemmes i registreingsdatabasen, men ikke med SaveSetting da de skal placeres på et bestemt sted. Grunden hertil er, at jeg skal kunne anvende disse data uanset hvilken maskine jeg kobler mig på i netværket.
Hvordan får jeg den automatisk til at gemme de indtastede oplysninger på det korrekt sted i registreringsdatabasen. Da jeg er en novice på dette område vil det være rart hvis i kunne anvende de ovennævnte variabler.
Registreringsdatabasen ser sådan ud når jeg indsætter dem manuelt.
Placer dette i et modul: Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Integer End Type
Type FILETIME dwLowDateTime As Long dwHightDateTime As Long End Type
Type VALENTA ve_valuename As Long ve_valuelen As Long ve_valueprtr As Long ve_type As Long End Type
Public Declare Function adh_apiRegCloseKey _ Lib "ADVAPI32" Alias "RegCloseKey" _ (ByVal hKey As Long) As Long Public Declare Function adh_apiRegConnectRegistry _ Lib "ADVAPI32" Alias "RegConnectRegistryA" _ (ByVal lpszComputerName As String, ByVal hKey As Long, _ ByRef phkResult As Long) As Long Public Declare Function adh_apiRegCreateKey _ Lib "ADVAPI32" Alias "RegCreateKeyA" _ (ByVal hKey As Long, ByVal lpszSubKey As String, _ ByRef phkResult As Long) As Long Public Declare Function adh_apiRegCreateKeyEx _ Lib "ADVAPI32" Alias "RegCreateKeyExA" _ (ByVal hKey As Long, ByVal lpszSubKey As String, _ ByVal dwReserved As Long, ByVal lpszClass As String, _ ByVal fdwOptions As Long, ByVal samDesired As Long, _ ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, _ ByRef phkResult As Long, _ ByRef lpdwDisposition As Long) As Long Public Declare Function adh_apiRegDeleteKey _ Lib "ADVAPI32" Alias "RegKeyDeleteA" _ (ByVal hKey As Long, ByVal lpszSubKey As String) As Long Public Declare Function adh_apiRegDeleteValue _ Lib "ADVAPI32" Alias "RegDeleteValueA" _ (ByVal hKey As Long, ByVal lpszValue As String) As Long Public Declare Function adh_apiRegEnumKey _ Lib "ADVAPI32" Alias "RegEnumKeyA" _ (ByVal hKey As Long, ByVal iSubkey As Long, _ ByVal lpszName As String, ByVal cchName As Long) As Long Public Declare Function adh_apiRegEnumKeyEx _ Lib "ADVAPI32" Alias "RegEnumKeyExA" _ (ByVal hKey As Long, ByVal iSubkey As Long, _ ByVal lpszName As String, ByRef lpcchName As Long, _ ByVal lpdwReserved As Long, ByVal lpszClass As String, _ ByRef lpcchClass As Long, _ ByRef lpftLastWrite As FILETIME) As Long Public Declare Function adh_apiRegEnumValue _ Lib "ADVAPI32" Alias "RegEnumValueA" _ (ByVal hKey As Long, ByVal iValue As Long, _ ByVal lpszValue As String, ByRef lpcchValue As Long, _ ByVal lpdwReserved As Long, ByRef lpdwType As Long, _ lpbData As Any, ByRef lpcbData As Long) As Long Public Declare Function adh_apiRegFlushKey _ Lib "ADVAPI32" Alias "RegFlushKey" _ (ByVal hKey As Long) As Long Public Declare Function adh_apiRegGetKeySecurity _ Lib "ADVAPI32" Alias "RegGetKeySecurity" _ (ByVal hKey As Long, ByVal SecInf As Long, _ ByRef pSecDesc() As Byte, ByRef lpcbSecDesc As Long) _ As Long Public Declare Function adh_apiRegLoadKey _ Lib "ADVAPI32" Alias "RegLoadKeyA" _ (ByVal hKey As Long, ByVal lpszSubKey As String, _ ByVal lpszFile As String) As Long Public Declare Function adh_apiRegNotifyChangeKeyValue _ Lib "ADVAPI32" Alias "RegNotifyChangeKeyValue" _ (ByVal hKey As Long, ByVal fWatchSubTree As Integer, _ ByVal fdwNotifyFilter As Long, ByVal hEvent As Long, _ ByVal fAsync As Integer) As Long Public Declare Function adh_apiRegOpenKeyEx _ Lib "ADVAPI32" Alias "RegOpenKeyExA" _ (ByVal hKey As Long, ByVal lpszSubKey As String, _ ByVal dwReserved As Long, ByVal samDesired As Long, _ ByRef hKey As Long) As Long Public Declare Function adh_apiRegQueryInfoKey _ Lib "ADVAPI32" Alias "RegQueryInfoKeyA" _ (ByVal hKey As Long, ByVal lpszClass As String, _ ByRef lpcchClass As Long, ByVal lpdwReserved As Long, _ ByRef lpcSubKeys As Long, ByRef lpcchMaxSubkey As Long, _ ByRef lpcchMaxClass As Long, ByRef lpcValeus As Long, _ ByRef lpcchMaxValueName As Long, _ ByRef lpcbMaxValueData As Long, _ ByRef lpcbSecurityDescriptor As Long, _ ByRef lpftLastWriteTime As FILETIME) As Long Public Declare Function adh_apiRegQueryMultipleValues _ Lib "ADVAPI32" Alias "RegQueryMultipleValuesA" _ (ByVal hKey As Long, ByRef val_list As VALENTA, _ ByVal num_vals As Long, ByRef lpValueBuf() As Byte, _ ByRef ldwTotsize As Long) As Long Public Declare Function adh_apiRegQueryValue _ Lib "ADVAPI32" Alias "RegQueryValueA" _ (ByVal hKey As Long, ByVal lpszSubKey As String, _ ByVal lpszValue As String, ByRef pcbValue As Long) As Long Public Declare Function adh_apiRegQueryValueEx _ Lib "ADVAPI32" Alias "RegQueryValueExA" _ (ByVal hKey As Long, ByVal lpszValueName As String, _ ByVal lpdwReserved As Long, ByRef lpdwType As Long, _ lpbData As Any, ByRef lpcbData As Long) As Long Public Declare Function adh_apiRegReplaceKey _ Lib "ADVAPI32" Alias "RegReplaceKeyA" _ (ByVal hKey As Long, ByVal lpSubKey As String, _ ByVal lpNewFile As String, ByVal lpOldFile As String) As Long Public Declare Function adh_apiRegRestoreKey _ Lib "ADVAPI32" Alias "RegRestoreKeyA" _ (ByVal hKey As Long, ByVal lpszFile As String, _ ByVal fdw As Long) As Long Public Declare Function adh_apiRegSaveKey _ Lib "ADVAPI32" Alias "RegSaveKeyA" _ (ByVal hKey As Long, ByVal lpszFile As String, _ ByRef lpsa As SECURITY_ATTRIBUTES) As Long Public Declare Function adh_apiRegSetKeySecurity _ Lib "ADVAPI32" Alias "RegSetKeySecurity" _ (ByVal hKey As Long, ByVal si As Long, _ ByRef psd() As Byte) As Long Public Declare Function adh_apiRegSetValue _ Lib "ADVAPI32" Alias "RegSetValueA" _ (ByVal hKey As Long, ByVal lpSubKey As String, _ ByVal dwType As Long, ByVal lpData As String, _ ByVal cbData As Long) As Long Public Declare Function adh_apiRegSetValueEx _ Lib "ADVAPI32" 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 Public Declare Function adh_apiregUnloadKey _ Lib "ADVAPI32" Alias "RegUnloadKeyA" _ (ByVal hKey As Long, ByVal lpszSubKey As String) As Long
Public Const delete = &H10000 Public Const READ_CONTROL = &H20000 Public Const WRITE_DAC = &H40000 Public Const WRITE_OWNER = &H80000 Public Const Synchronize = &H100000
Public Const STANDARD_RIGHTS_READ = READ_CONTROL Public Const STANDARD_RIGHTS_WRITE = READ_CONTROL Public Const STANDARD_RIGHTS_EXECUTE = READ_CONTROL Public Const STANDARD_RIGHTS_ALL = &H1F0000 Public Const SPECIFIC_RIGHTS_ALL = &HFFFF&
Public Const APPLICATION_ERROR_MASK = &H20000000 Public Const ERROR_SEVERITY_SUCCESS = &H0& Public Const ERROR_SEVERITY_INFORMATIONAL = &H40000000 Public Const ERROR_SEVERITY_WARNING = &H80000000 Public Const ERROR_SEVERITY_ERROR = &HC0000000
Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_USERS = &H80000003 Public Const HKEY_PERFORMANCE_DATA = &H80000004 Public Const HKEY_CURRENT_CONFIG = &H80000005 Public Const HKEY_DYN_DATA = &H80000006
Public Const KEY_QUERY_VALUE = &H1& Public Const KEY_SET_VALUE = &H2& Public Const KEY_CREATE_SUB_KEY = &H4& Public Const KEY_ENUMERATE_SUB_KEYS = &H8& Public Const KEY_NOTIFY = &H10& Public Const KEY_CREATE_LINK = &H20& Public Const KEY_READ = STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY And Not Synchronize Public Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY And Not Synchronize Public Const KEY_EXECUTE = KEY_READ And Not Synchronize Public Const KEY_ALL_ACCESS = STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK And Not Synchronize
Public Const REG_NONE = 0 Public Const REG_SZ = 1 Public Const REG_EXPAND_SZ = 2 Public Const REG_BINARY = 3 Public Const REG_DWORD = 4 Public Const REG_DWORD_LITTLE_ENDIAN = 4 Public Const REG_DWORD_BIG_ENDIAN = 5 Public Const REG_LINK = 6 Public Const REG_MULTI_SZ = 7 Public Const REG_RESOURCE_LIST = 8 Public Const REG_FULL_RESOURCE_DESCRIPTOR = 9 Public Const REG_RESOURCE_REQUIREMENTS_LIST = 10
Public Function adhSetRegistryValueFromPath _ (ByVal strPath As String, ByVal varValue As Variant) _ As Variant ' Sets a value based on a registry path ' ' From Access 97 Developer's Handbook ' by Litwin, Getz, and Gilbert. (Sybex) ' Copyright 1997. All Rights Reserved. ' ' In: ' strPath A registry path ' varValue The value to be set ' The VarType of the variant determines ' What data type in the registry is ' used ' ' Out: ' If there is an error then IsError on the return ' value will return True. Otherwise the return ' value has no meaning. ' ' Example: ' ? adhSetRegistryValueFromPath("\HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive", "1")
Dim hKey As Long Dim strValue As String Dim retCode As Long
If Not IsError _ (adhGetKeyAndValueFromPath(strPath, hKey, strValue)) Then Select Case varType(varValue) Case vbEmpty Stop Case vbNull Stop Case vbInteger Stop Case vbLong retCode = adh_apiRegSetValueEx(hKey, strValue, _ 0&, REG_DWORD, CLng(varValue), 4) Select Case retCode And APPLICATION_ERROR_MASK Case ERROR_SEVERITY_SUCCESS Case Else adhSetRegistryValueFromPath = CVErr(0) End Select Case vbSingle Stop Case vbDouble Stop Case vbCurrency Stop Case vbDate Stop Case vbString retCode = adh_apiRegSetValueEx(hKey, strValue, _ 0&, REG_SZ, ByVal CStr(varValue), Len(varValue)) Select Case retCode And APPLICATION_ERROR_MASK Case ERROR_SEVERITY_SUCCESS Case Else adhSetRegistryValueFromPath = CVErr(0) End Select Case vbObject Stop Case vbError Stop Case vbBoolean Stop Case vbVariant Stop Case vbDataObject Stop Case vbByte Stop Case vbArray Stop Case Else Stop End Select Call adh_apiRegCloseKey(hKey) End If End Function
Herefter gemmer du således: adhSetRegistryValueFromPath "HKEY_CURRENT_USER\Software\Microsoft\FLC Nord\UserInfo", Værdi
Genialt og overskueligt "kedde65" tak for det og her er dine point
VH Toh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.