Registry-Eintrag unter VB6 erstellen

Diskutiere Registry-Eintrag unter VB6 erstellen im Programmierung Forum im Bereich Software Forum; Hallo Leutz! Hab zwei Problem: 1. Arbeite mit Visual Basic 6 und möchte einen Registrierungseintrag erstellen. Kennt jemand die Befehle dafür...
snadboy

snadboy

Threadstarter
Mitglied seit
27.11.2004
Beiträge
1.408
Standort
Herten
Hallo Leutz!

Hab zwei Problem:

1. Arbeite mit Visual Basic 6 und möchte einen Registrierungseintrag erstellen. Kennt jemand die Befehle dafür?

2. Ich möchte die Zeichenfolgen eines Schlüssels in einer Box auflisten lassen.


Vielen Dank schon mal!
Gruß
snadboy
 
DrHoffmann

DrHoffmann

Mitglied seit
23.03.2004
Beiträge
189
Alter
41
Moin,

guck Dir in der MSDN mal die folgenden Funktionen an:

- RegOpenKeyExA
- RegCloseKey Lib
- RegQueryValueExA
- RegCreateKeyExA
- RegFlushKey
- RegSetValueExA
- RegSetValueExA
- RegDeleteKeyA
- RegDeleteValueA

Code:
Private 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
    
Private Declare Function RegCloseKey Lib "advapi32.dll" _
    (ByVal hKey As Long) As Long
    
Private 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 Any) As Long
    
Private 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

    
Private Declare Function RegFlushKey Lib "advapi32.dll" (ByVal _
    hKey As Long) As Long
    
Private 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 Long, ByVal cbData As Long) _
    As Long
    
Private Declare Function RegSetValueEx_Str Lib "advapi32.dll" _
    Alias "RegSetValueExA" (ByVal hKey As Long, ByVal _
    lpValueName As String, ByVal Reserved As Long, ByVal _
    dwType As Long, ByVal lpData As String, ByVal cbData As _
    Long) As Long

Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias _
    "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As _
    String) As Long
    
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias _
    "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName _
    As String) As Long

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const ERROR_SUCCESS = 0&

Const REG_OPTION_NON_VOLATILE = &H0

'RegCreateKeyEx samDesired-Konstanten
Private Const KEY_ALL_ACCESS = &HF003F 'Alle arten von Zurgiffen
Private Const KEY_CREATE_LINK = &H20 'Erlaubnis zum Symbolischen erstellen von Links
Private Const KEY_CREATE_SUB_KEY = &H4 'Erlaubnis zum unterschlüssel erstellen
Private Const KEY_ENUMERATE_SUB_KEYS = &H8 'Erlaubnis zum Enumerieren der Unterschlüssel
Private Const KEY_NOTIFY = &H10 'Erlaubnis über änderungen benachritet zu werden
Private Const KEY_QUERY_VALUE = &H1 'Erlaubnis zum Auslesen von Unterschlüssel Daten
Private Const KEY_READ = &H20019 'Lese zugriff
Private Const KEY_SET_VALUE = &H2 'Erlaubnis zum Schreiben von werten in Unterschlüsseln
Private Const KEY_WRITE = &H20006 'Schreib zugriff
 
'RegSetValueEx dwType-Konstanten
Private Const REG_BINARY = 3 'Eine Bytefolge
Private Const REG_DWORD = 4 'Ein 32-Bit Integer wert (Little Endian)
Private Const REG_DWORD_BIG_ENDIAN = 5 'Ein 32-Bit Integer (Big Endian)
Private Const REG_EXPAND_SZ = 2 'Ein VBNullChar Terminierter String der Umgebungsvariablen enthält
Private Const REG_LINK = 6 'Ein Unicode symbolischer Link
Private Const REG_MULTI_SZ = 7 'Eine Serie von Strings, jedes getrennt mit einem VBNullChar-Zeichen und das ende mit 2 VBNullChar-Zeichen
Private Const REG_NONE = 0 'Keine Daten
Private Const REG_RESOURCE_LIST = 8 'Eine liste von Ressourcen in einer Ressourcen Map
Private Const REG_SZ = 1 'Ein VBNullChar-Zeichen Terminierter String
 

Public Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type

Function WriteRegValue(Value As Variant, Section As String) As Boolean

Dim Result As Long
Dim s As String
Dim Back As Long
Dim SA As SECURITY_ATTRIBUTES

With SA
  .bInheritHandle = 1
  .nLength = Len(SA)
End With

If RegOpenKeyEx(HKEY_LOCAL_MACHINE, Section, 0&, KEY_ALL_ACCESS, hKey) <> ERROR_SUCCESS Then
  If RegCreateKeyEx(HKEY_LOCAL_MACHINE, Section, 0&, "", 0&, KEY_WRITE, SA, hKey, Action) <> ERROR_SUCCESS Then
    WriteRegValue = False
    RegCloseKey (hKey)
    Exit Function
  End If
End If

s = CStr(Value)

If RegSetValueEx_Str(hKey, Section, 0, REG_SZ, s, Len(s) + 1) <> ERROR_SUCCESS Then
  WriteRegValue = False
  RegCloseKey (hKey)
  Exit Function
Else
  WriteRegValue = True
  RegCloseKey (hKey)
  Exit Function
End If

End Function


Function GetRegValue(Section As String) As String

Dim hKey As Long
Dim Value As String
Dim Length As Long

Length = 255
Value = Space$(Length)

If RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\Datentransfer", 0&, KEY_ALL_ACCESS, hKey) <> ERROR_SUCCESS Then
  RegCloseKey (hKey)
  Exit Function
Else
  If RegQueryValueEx(hKey, Section, 0&, 4, ByVal Value, Length) <> ERROR_SUCCESS Then
    RegCloseKey (hKey)
    Exit Function
  Else
    GetRegValue = Left$(Value, Length - 1)
    RegCloseKey (hKey)
  End If
End If
    
End Function
ungestet von Hirn->Finger->Auge

Gruß,

Tobi
 
snadboy

snadboy

Threadstarter
Mitglied seit
27.11.2004
Beiträge
1.408
Standort
Herten
Vielen Dank schon mal! :danke (Das mit dem regwrite hab ich dann dank deiner hilfe gelöst)

Steh dann vor einem weiteren Problem:

Habe in VB6 in ein Formular eine Listbox integriert und möchte, dass VB jetzt die Zeichenfolgen aus einem Schlüssel dort auflistet.
Aber nicht nur von der Registry, sondern auch aus einem bestimmten Ordner die Dateien.
(Wenn möglich (nicht unbedingt erforderlich): Die Pfadangabe zu den einzelnen Dateien/Schlüsseln sollen rechts neben den Dateien stehen (Bsp.: HKLM\Software...))

Und wenn ich schon ma dabei bin :D :
Wie kann ich einen Schlüssel exportieren? Er muss nicht unbedingt in eine *.reg Datei gespeichert sein. Möchte nur den schlüssel über das Programm exportieren und dann anschließend einen solchen in das Programm imprtieren können, sodass er auch funktionsfähig in die Registry geschrieben wird!

Gruß
snadboy
 
DrHoffmann

DrHoffmann

Mitglied seit
23.03.2004
Beiträge
189
Alter
41
Moin,

Vielen Dank schon mal! :danke (Das mit dem regwrite hab ich dann dank deiner hilfe gelöst)
gern geschehen :D

bei deinen nächsten Fragen, bin ich jetzt allerdings etwas überfragt.

Guck mal unter http://www.activevb.de/startseite/index.html, dann findest 'ne Menge an Tutorials und Anleitungen. Ansonsten kann ich dir noch die deutsch Newsgroup für VB6 von M$ microsoft.public.de.vb empfehlen. Wenn du da ein wenig suchst, wirst du bestimmt was passendes finden.

Gruß,

Tobi
 
Thema:

Registry-Eintrag unter VB6 erstellen

Registry-Eintrag unter VB6 erstellen - Ähnliche Themen

  • Gruppenrichtlinien von Windows zum passenden Eintrag der Registry zuordnen mit GPSEARCH

    Gruppenrichtlinien von Windows zum passenden Eintrag der Registry zuordnen mit GPSEARCH: Heute mal ein kleine Tipp der für Einsteiger sicher völlig ungeeignet ist, aber es gibt ja eben nicht nur solche und so mancher will oder muss...
  • Windows10 blockiert Update bei Pro Versionen 1903 wegen Funktions-Qualitätsupdate in den Registry Einträgen.

    Windows10 blockiert Update bei Pro Versionen 1903 wegen Funktions-Qualitätsupdate in den Registry Einträgen.: Hallo miteinander, Seit wenigen Tagen erhielt ich keine Update auf dem 1903 Pro Version. (Achtung: dieser Artikel gilt nicht für Home User)...
  • Keine Update mehr bei Pro Versionen 1903 wegen Funktions-Qualitätsupdate in den Registry Einträgen.

    Keine Update mehr bei Pro Versionen 1903 wegen Funktions-Qualitätsupdate in den Registry Einträgen.: Hallo miteinander, Seit wenigen Tagen erhielt ich keine Update auf dem 1903 Pro Version. (Achtung: dieser Artikel gilt nicht für Home User)...
  • keine Funktionsupdate Qualitätsupdate ausser man stellt die Registry Einträge auf 0 werte.

    keine Funktionsupdate Qualitätsupdate ausser man stellt die Registry Einträge auf 0 werte.: Hallo miteinander, Seit wenigen Tagen erhielt ich keine Update auf dem 1903 Pro Version. Auffällig war auch, dass unter Windows...
  • Thumbnails löschen sich schon wieder ständig - Registry-Eintrag plötzlich auf 3

    Thumbnails löschen sich schon wieder ständig - Registry-Eintrag plötzlich auf 3: Hallo an alle, ich hatte die selbe Frage ja bereits letztes Jahr gestellt - und auch eine Lösung gefunden. Der Link dazu: Miniaturansichten...
  • Ähnliche Themen

    Oben