vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Registry lesen unter Windows 7 
Autor: Sarek
Datum: 26.02.14 03:27

Hallo Frank,

danke für die schnelle Antwort.

Also, ich benutze aus dem Codebespiel nur die Lesen-Funktion, geschrieben sind die Werte bereits anderweitig. Die Werte sind auch vorhanden, das habe ich überprüft. Konkret lautet eine meiner Abfragen:

PfadLogdatei = fWertLesen(HKEY_LOCAL_MACHINE, "Software\MBUS", "PfadLogdatei")
Also, Variablen verwende ich da nicht. Aber der Schlüssel "HKLM\Software" existiert ja auch unter Windows 7. Oder etwa nicht? Jetzt wo Du was von Variablen sagst, kommen mir langsam Zweifel. Der Ordner "c:\programme" existiert in Windows 7 ja auch nicht wirklich, obwohl er im Explorer angezeigt wird. Gibt es in der Registry jetzt auch solche Fake-Namen?

Das Modul "Registryzugriff", in dem die benötigten Funktionen liegen, sieht übrigens so aus:

Option Compare Database
 
Rem Konstanten und API-Aufrufe für den Registry-Zugriff
 
Declare Function RegOpenKey Lib "advapi32.dll" Alias _
  "RegOpenKeyA" (ByVal hKey As Long, ByVal _
  lpSubKey As String, 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
 
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
 
Declare Function RegCloseKey Lib "advapi32.dll" _
  (ByVal hKey As Long) As Long
 
Declare Function RegCreateKey Lib "advapi32.dll" _
  Alias "RegCreateKeyA" (ByVal hKey As Long, _
  ByVal lpSubKey As String, phkResult As Long) As Long
 
Declare Function RegDeleteValue Lib "advapi32.dll" _
  Alias "RegDeleteValueA" (ByVal hKey As Long, _
  ByVal lpValueName As String) As Long
 
Global Const HKEY_LOCAL_MACHINE = &H80000002
Global Const REG_SZ = 1
Global Const REG_BINARY = 3
 
 
 
' ========================================================
' ========================================================
' Wert aus Registry lesen
' ========================================================
' ========================================================
'
' hKey: Zweig der Registry, z.B. HKEY_LOCAL_MACHINE
' sPath: Pfad unterhalb des Zweigs (Schlüssel)
' sValue: Wert innerhalb des Schlüssels
 
Function fWertLesen(hKey As Long, sPath As String, _
  sValue As String)
 
  Dim vRet As Variant
 
  RegOpenKey hKey, sPath, vRet
  fWertLesen = fRegAbfrageWert(vRet, sValue)
  RegCloseKey vRet
End Function
 
' =============================================================================
' =====
' =============================================================================
' =====
' Wird von "fWertLesen" aufgerufen und gibt den Wert eines Schlüsselnamens 
' zurück.
' Hierbei wird autom. ermittelt, ob es sich um einen String oder Binärwert 
' handelt.
' =============================================================================
' =====
' =============================================================================
' =====
 
Function fRegAbfrageWert(ByVal hKey As Long, _
  ByVal sValueName As String) As String
 
  Dim sBuffer As String
  Dim lRes As Long
  Dim lTypeValue As Long
  Dim lBufferSizeData As Long
  Dim iData As Integer
 
  lRes = RegQueryValueEx(hKey, sValueName, 0, _
    lTypeValue, ByVal 0, lBufferSizeData)
  If lRes = 0 Then
    If lTypeValue = REG_SZ Then
      sBuffer = String(lBufferSizeData, Chr$(0))
      lRes = RegQueryValueEx(hKey, sValueName, 0, _
        0, ByVal sBuffer, lBufferSizeData)
      If lRes = 0 Then
        fRegAbfrageWert = Left$(sBuffer, _
          InStr(1, sBuffer, Chr$(0)) - 1)
      End If
    ElseIf lTypeValue = REG_BINARY Then
      lRes = RegQueryValueEx(hKey, sValueName, 0, _
        0, iData, lBufferSizeData)
      If lRes = 0 Then
        fRegAbfrageWert = iData
      End If
    End If
  End If
End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Registry lesen unter Windows 71.953Sarek25.02.14 22:30
Re: Registry lesen unter Windows 71.350Franki26.02.14 01:02
Re: Registry lesen unter Windows 71.509Sarek26.02.14 03:27
Re: Registry lesen unter Windows 71.314Rippler27.02.14 23:57
Re: Registry lesen unter Windows 71.287Sarek28.02.14 05:47

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel