Ako enumerácia hodnôt kľúča databázy Registry

Preklady článku Preklady článku
ID článku: 178755 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

V RegEnumValue funkcia umožňuje enumerácia hodnôt kľúča databázy registry. Nastavenia programu sú zvyčajne uložené v databáze registry. Enumerácia pomocou kľúča databázy registry umožňuje čítať nastavenia databázy registry programu tak, že môžete obnoviť nastavenia nabudúce spustíte program.

Tento článok vám ukáže, ako používať RegEnumValue Funkcia enumerácia hodnôt kľúča databázy registry.

DALSIE INFORMACIE

Takto je vyhlásenie vyhlásenie jazyka Visual Basic pre RegEnumValue:
   Private Declare Function RegEnumValue Lib "advapi32.dll" _
                   Alias "RegEnumValueA" _
                   (ByVal hKey As Long, _
                   ByVal dwIndex As Long, _
                   ByVal lpValueName As String, _
                   lpcbValueName As Long, _
                   ByVal lpReserved As Long, _
                   lpType As Long, _
                   lpData As Any, _
                   lpcbData As Long) As Long

				
POZNÁMKA: Deklarácie funkcie uvedené v text prehliadač API preRegEnumValue funkcia je nesprávna. Piateho parametra, lpReserved, by prešiel hodnotou, ako je to znázornené vyššie. Pre viac informácií pozri článok v databáze Microsoft Knowledge Base:
173009 PRB: Chyba v režime Runtime 87 pomocou RegEnumValue funkcie
V ďalšej časti ilustruje, ako vytvoriť vzorky projekt, ktorý zobrazuje hodnoty zadaný kľúč databázy registry v zozname.

Podrobný príklad

  1. Začať nový štandard EXE projekt v jazyku Visual Basic. Form1 sa vytvorí na základe predvoleného nastavenia.
  2. Pridať CommandButton a ovládací prvok zoznam Form1. Pretože mnohé z poznámok sú zdĺhavé, ListBox by zasahujúcim v plnej šírke forme. Výška ListBox by malo byť niekoľko riadkov.
  3. Prilepte nasledujúci kód do okna pre kód z Form1:
          Option Explicit
    
          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 RegEnumValue Lib "advapi32.dll" _
              Alias "RegEnumValueA" _
              (ByVal hKey As Long, _
              ByVal dwIndex As Long, _
              ByVal lpValueName As String, _
              lpcbValueName As Long, _
              ByVal lpReserved As Long, _
              lpType As Long, _
              lpData As Any, _
              lpcbData As Long) As Long
    
          Private Declare Function RegCloseKey Lib "advapi32.dll" _
              (ByVal hKey As Long) As Long
    
          Const HKEY_CLASSES_ROOT = &H80000000
          Const HKEY_CURRENT_USER = &H80000001
          Const HKEY_LOCAL_MACHINE = &H80000002
          Const HKEY_USERS = &H80000003
    
          Const ERROR_SUCCESS = 0&
    
          Const SYNCHRONIZE = &H100000
          Const STANDARD_RIGHTS_READ = &H20000
          Const STANDARD_RIGHTS_WRITE = &H20000
          Const STANDARD_RIGHTS_EXECUTE = &H20000
          Const STANDARD_RIGHTS_REQUIRED = &HF0000
          Const STANDARD_RIGHTS_ALL = &H1F0000
          Const KEY_QUERY_VALUE = &H1
          Const KEY_SET_VALUE = &H2
          Const KEY_CREATE_SUB_KEY = &H4
          Const KEY_ENUMERATE_SUB_KEYS = &H8
          Const KEY_NOTIFY = &H10
          Const KEY_CREATE_LINK = &H20
          Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
                            KEY_QUERY_VALUE Or _
                            KEY_ENUMERATE_SUB_KEYS Or _
                            KEY_NOTIFY) And _
                            (Not SYNCHRONIZE))
    
          Const REG_DWORD = 4
          Const REG_BINARY = 3
          Const REG_SZ = 1
    
          Private Sub Command1_Click()
             Dim lngKeyHandle As Long
             Dim lngResult As Long
             Dim lngCurIdx As Long
             Dim strValue As String
             Dim lngValueLen As Long
             Dim lngData As Long
             Dim lngDataLen As Long
             Dim strResult As String
    
             lngResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _
                     "SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls", _
                      0&, _
                      KEY_READ, _
                      lngKeyHandle)
    
             If lngResult <> ERROR_SUCCESS Then
                 MsgBox "Cannot open key"
                 Exit Sub
             End If
    
             lngCurIdx = 0
             Do
                lngValueLen = 2000
                strValue = String(lngValueLen, 0)
                lngDataLen = 2000
    
                lngResult = RegEnumValue(lngKeyHandle, _
                                         lngCurIdx, _
                                         ByVal strValue, _
                                         lngValueLen, _
                                         0&, _
                                         REG_DWORD, _
                                         ByVal lngData, _
                                         lngDataLen)
                lngCurIdx = lngCurIdx + 1
    
             If lngResult = ERROR_SUCCESS Then
                strResult = lngCurIdx & ": " & Left(strValue, lngValueLen)
                List1.AddItem strResult
             End If
    
             Loop While lngResult = ERROR_SUCCESS
             Call RegCloseKey(lngKeyHandle)
          End Sub
    					
  4. Na Štart ponuky, kliknite na tlačidlo Spustiť, alebo stlačte kláves F5, čím spustíte program. Kliknite na položku CommandButton. Všetky hodnoty pre nasledujúci kľúč databázy registry sa zobrazia v poli zoznam:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDlls

ODKAZY

Ďalšie informácie o používaní programu Visual Basic manipulovať nastavenia databázy registry, po kliknutí na nasledovné čísla článkov databázy Microsoft Knowledge Base:
145679 Ako používať Registry API uložiť a obnoviť nastavenia
267908 Ako vypočítať podkľúče otvoriť kľúč databázy Registry

Vlastnosti

ID článku: 178755 - Posledná kontrola: 18. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Kľúčové slová: 
kbapi kbhowto kbmt KB178755 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:178755

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com