Hej! Lägg följande kod i en modul, ej i en funktion utan bland deklarationerna: Tack, du har sparat mig många timmars jobb och applikationen jag ska bygga kommer att vara sååååå mycket mer användarvänlig tack vare koden - som jag fö aldrig fått till själv så snitsigt!Hämta registernyckel Access97
Någon som på rak arm kan skriva ner hur jag hämtar en registernyckel.
Sökte lite snabbt i hjälpen och på nätet men hittade inte syntaxen.
Har lite tidsbrist och skulle bli jätteglad för hjälp.
Det är Access97 som ska skrivas i.
Det är en nyckel under HKEY_CURRENT_USER som ska hämtas och hämtat nycklar har jag tidigare bara gjort i Word.
/AnnSv: Hämta registernyckel Access97
<code>
Option Compare Database
Option Explicit
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" ( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long _
) As Long
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" ( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByVal ulOptions As Long, _
ByVal samDesired As Long, _
phkResult As Long _
) As Long
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" ( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByVal Reserved As Long, _
ByVal lpClass As String, _
ByVal dwOptions As Long, ByVal samDesired As Long, _
lpSecurityAttributes As SECURITY_ATTRIBUTES, _
phkResult As Long, _
lpdwDisposition As Long _
) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
lpType As Long, _
lpData As Any, _
lpcbData As Long _
) As Long
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
Public Declare Function RegFlushKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
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_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const KEY_ALL_ACCESS = &HF003F
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_EXECUTE = &H20019
Public Const KEY_NOTIFY = &H10
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_READ = &H20019
Public Const KEY_SET_VALUE = &H2
Public Const KEY_WRITE = &H20006
Public Const REG_SZ = 1 ' Nollterminerad textsträng
Public Const REG_BINARY = 3 ' Byte sekvens bestående av icketext
Public Const REG_DWORD = 4 ' 32-bitars heltal
</code>
Skapa sedan en funktion som ser ut såhär:
<code>
Function RegLas(hKey As Long, registerNyckel As String, varde As String) As String
Dim hRegKey As Long
Dim Buffer As String
RegLas = ""
If RegOpenKeyEx(hKey, registerNyckel, 0, KEY_ALL_ACCESS, hRegKey) <> 0 Then
Exit Function
End If
Dim Length As Long
Buffer = Space(255)
Length = Len(Buffer)
If RegQueryValueEx(hRegKey, varde, 0, REG_SZ, ByVal Buffer, Length) <> 0 Then
Exit Function
End If
Buffer = Left(Buffer, Length)
If RegCloseKey(hKey) <> 0 Then
Exit Function
End If
'Ta bort nollsträngen
If Len(Buffer) > 0 Then
Buffer = Left(Buffer, Len(Buffer) - 1)
End If
RegLas = Buffer
End Function
</code>
Anropa sedan såhär:
<code>
RegLas(HKEY_CURRENT_USER, "SOFTWARE\Microsoft\blablabla", "värde")
</code>
/JohanSv: Hämta registernyckel Access97
/Ann