API steht für Applikation Programming Interface. Das sind fertige Programmteile, die für die Nutzung anderer Programme zur Verfügung stehen. In Windows liegen die DLLs im System32 Ordner.
Hier eine Beispielfunktion, die in der Registry ließt. In den Declarationen, die im allgemeinen Programmteil stehen, kannst Du sehen, welche DLLs genutzt werden. Kopier dir alles in einen Editor, da ist es leichter zu lesen.
'API-Deklarationen
'
'
' WINDOWS-REGISTRY bearbeiten
'
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) 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 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 ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey 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, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition 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 ' Note that if you declare the lpData parameter as String, you must pass it By Value.
'
'Konstanten-Deklarationen
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_ALL_ACCESS = 63
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 REG_OPTION_VOLATILE = 1
Public Const REG_OPTION_NON_VOLATILE = 0
Public Sub REGISTRY_READ()
Dim Puffer As String
Dim Länge As Long
Dim RWert As Long
Dim Handle As Long
Dim Eintrag As String
'*
'* REGISTRY lesen
'*
'*Schlüssel "Software\TEST\FTPMGMT"
'*im Hauptschlüssel HKEY_LOCAL_MACHINE öffnen.
'RWert = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\TEST\FTPMGMT", 0, KEY_QUERY_VALUE, Handle)
'*
'*Puffervariable anlegen
'*
Puffer = String(255, 0)
Länge = Len(Puffer)
'*
'* Schlüssel freigeben
'RWert = RegCloseKey(Handle)
'*
'*TEST_GLOBAL - REGISTRY lesen
'*
'*Schlüssel "Software\TEST\TEST_GLOBAL"
'*im Hauptschlüssel HKEY_LOCAL_MACHINE öffnen.
RWert = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\TEST\TEST_GLOBAL", 0, KEY_QUERY_VALUE, Handle)
'Puffervariable anlegen
Puffer = String(255, 0)
Länge = Len(Puffer)
'Wert des Zeichenfolgen-Eintrags 'Personal' lesen (Puffervariable 'By Value' übergeben!)
RWert = RegQueryValueEx(Handle, "DNS_NAME", 0, REG_SZ, ByVal Puffer, Länge)
'Falls Aktion erfolgreich, dann...
If RWert = 0 Then
'... Wert aus Puffervariable isolieren
DNS_NAME = Left(Puffer, Länge)
'Wert anzeigen
'Text1.Text = "Ordner für persönliche Dokumente: " & Eintrag
End If
Puffer = String(255, 0)
Länge = Len(Puffer)
RWert = RegQueryValueEx(Handle, "DNS_USER", 0, REG_SZ, ByVal Puffer, Länge)
'Falls Aktion erfolgreich, dann...
If RWert = 0 Then
'... Wert aus Puffervariable isolieren
DNS_USER = Left(Puffer, Länge - 1)
'Wert anzeigen
'Text1.Text = "Ordner für persönliche Dokumente: " & Eintrag
End If
Puffer = String(255, 0)
Länge = Len(Puffer)
RWert = RegQueryValueEx(Handle, "DNS_PWD", 0, REG_SZ, ByVal Puffer, Länge)
'Falls Aktion erfolgreich, dann...
If RWert = 0 Then
'... Wert aus Puffervariable isolieren
DNS_PWD = Left(Puffer, Länge - 1)
'Wert anzeigen
'Text1.Text = "Ordner für persönliche Dokumente: " & Eintrag
End If
Puffer = String(255, 0)
Länge = Len(Puffer)
RWert = RegQueryValueEx(Handle, "HOST_NAME", 0, REG_SZ, ByVal Puffer, Länge)
'Falls Aktion erfolgreich, dann...
If RWert = 0 Then
'... Wert aus Puffervariable isolieren
SERVNAME = Left(Puffer, Länge - 1)
'Wert anzeigen
'Text1.Text = "Ordner für persönliche Dokumente: " & Eintrag
End If
Puffer = String(255, 0)
Länge = Len(Puffer)
RWert = RegQueryValueEx(Handle, "logfilepath", 0, REG_SZ, ByVal Puffer, Länge)
'Falls Aktion erfolgreich, dann...
If RWert = 0 Then
'... Wert aus Puffervariable isolieren
LOG_PATH = Left(Puffer, Länge - 1)
'Wert anzeigen
'Text1.Text = "Ordner für persönliche Dokumente: " & Eintrag
End If
'Schlüssel freigeben
RWert = RegCloseKey(Handle)
End Sub
Natürlich gibt es diese Schlüssel nicht auf Deinem Rechner, aber anhand der Beispiele kannst Du Dir da was zusammenbauen was funktioniert. Wie man dann diese API zum Schreiben oder löschen nimmt, musst Du ausprobieren (oder in der MSDN Library nachsehen).
Viel Glück