Image
7.6.2016 0 Comments

ASSEMBLER pod Windows: Register + INI súbory I (21. časť)

Späť na úvod >> Späť na programovanie >> Späť na seriál

Z hľadiska aplikácií často potrebujeme, aby si program pamätal niektoré dôležité údaje, napríklad veľkosť okna aplikácie, poslednú pozíciu na obrazovke, pri poštových klientoch sú to informácie ako SMTP server:port, POP3 server:port a rôzne iné nastavenia konkrétneho programu. Windows umožňuje použiť dve techniky ukladania stavových informácií:

  1. súbor INI,
  2. systémový register.

Súbory INI sa používali vo Windows 3.1. No s príchodom Windows 95 koncepciu súborov INI kompletne nahradil systémový register. Podpora pre súbory INI však pretrvala až doteraz (najmä v záujme kompatibility), a tak ich ešte nájdete aj v novom Windows XP.

Systémový register je v skratke hierarchicky usporiadaná databáza informácií o počítači a nainštalovanom programovom vybavení. Register je založený na šiestich základných kľúčoch na najvyššej úrovni.

  1. HKEY_CLASSES_ROOT
  2. HKEY_CURRENT_USER
  3. HKEY_LOCAL_MACHINE
  4. HKEY_USERS
  5. HKEY_CURRENT_CONFIG
  6. HKEY_DYN_DATA

Takto to vyzeralo vo Windows 95. Vo Windows 2000 však posledný menovaný kľúč už nenájdete.

Systémový register podporuje aj prácu v sieti a umožňuje individuálnemu používateľovi ukladať nastavenia (preferences), takže aplikácia môže prispôsobiť používateľské rozhranie pre aktuálneho používateľa.

Hlavné kľúče systémového registra Windows majú takýto význam: HKEY_LOCAL_MACHINE – ukladá rôzne nastavenia nainštalovaného softvéru, hardvérové konfigurácie, sieťové protokoly a softvérové triedy (HKEY_CLASSES_ROOT). Okrem toho obsahuje registračné informácie platné pre všetkých používateľov. HKEY_CLASSES_ROOT – táto sekcia obsahuje definície typov dokumentov, informácie o asociáciách programov k súborom a OLE class ID. HKEY_USERS – obsahuje registračné informácie prihláseného používateľa. Používa sa na ukladanie nastavení pre používaný softvér. Aplikácie by mali ukladať používateľské nastavenia do podkľúča „SOFTWARE“. HKEY_CURRENT_USER – obsahuje registračné informácie prihláseného používateľa. Tento kľúč je v podstate len kópiou časti kľúča HKEY_USERS (konkrétne je kópiou kľúča HKEY_USERS\SID prihláseného používateľa [SID je identifikátor v systéme Windows, ktorý jednoznačne identifikuje práve prihláseného používateľa, SID má napr. tvar: 1-5-21-483463859-492394333-1345624091-500], alebo ak nie je prihlásený nijaký používateľ, je kópiou HKEY_USERS\.Default). Vytvára sa po prihlásení používateľa a pri odhlásení sa prekopíruje späť do HKEY_USERS. HKEY_DYN_DATA – podkľúč Enum zaznamenáva hardvérové dáta pre každý komponent systému. Podkľúč PerfStats meria výkon systému. Tieto dáta sú generované, keď sa vo volaní funkcie RegQueryKeyEx použije kľúč HKEY_PERFORMACE_DATA. HKEY_CURRENT_CONFIG – obsahuje odkazy na registračné informácie týkajúce sa hardvérových nastavení, ktoré sú uložené v HKEY_LOCAL_MACHINE\Config

Údaje v registri sú usporiadané v kľúčoch. Každý z hlavných kľúčov (HKEY) môže ďalej obsahovať ďalšie podkľúče (Subkey) alebo hodnoty (Value). Pri hodnote rozlišujeme názov hodnoty a údaj hodnoty. Hodnota môže byť buď typu String, Binary, alebo DWORD. String value – predstavuje textovú hodnotu. Binary value – je niekoľko číselných hodnôt nasledujúcich tesne po sebe (pozri obrázok 1). DWORD value – je ľubovoľná 32-bitová hodnota.

Register Windows môžete prezerať a upravovať pomocou programu REGEDIT (pozri obrázok 1), ktorý je dostupný už po nainštalovaní systému Windows. Samozrejme, nie každému je po chuti program REGEDIT a možno aj z toho dôvodu vzniklo veľa jeho náhrad. Tieto programy majú väčšinou rozšírené funkcie. Napríklad umožňujú logovanie vykonaných zmien, rýchlejšie prehľadávanie, mazanie s možnosťou vrátiť zmeny do pôvodného stavu a rôzne iné rozšírenia. Aby som bol konkrétny, uvediem niekoľko webových stránok, na ktorých nájdete takéto programy.

RegHance 2.1http://www.lavasoftusa.com/,

RegEditX 1.31http://www.dcsoft.com/products/regeditx/regeditx.htm,

RegEditor http://www.utils32.com/regview.htm, http://www.utils32.com/regeditr.htm,

RegSeekhttp://www.tafweb.com/regseek.html,

Regmon (Win9x)www.sysinternals.com/files/regmon95.zip,

Regmon (W2k) www.sysinternals.com/files/ntregmon.zip.

Samozrejme, toto nie je vyčerpávajúci zoznam editorov registra Windows. V sieti internet nájdete oveľa viac programov, ktoré umožňujú prácu s registrom.

Zobrazenie formátu registra v programe REGEDIT je veľmi podobné tomu, ako Explorer Windows zobrazuje súbory, adresáre, podadresáre a dokumenty oddelene, pretože štruktúra registra (pozri obrázok 2) je podobná štruktúre adresárov na vašom disku. V terminológii registra je ekvivalentom ;+adresára kľúč (key) a ekvivalentom dokumentu, resp. súboru je hodnota (value). Kľúč je kolekcia podkľúčov (subkey) a hodnôt.

Na prístup k registru Windows máme v API definovaných niekoľko funkcií, v nasledujúcom texte si o nich povieme viac. Príklad použitia uvedených funkcií nájdete opäť na stránke www.pcrevue.sk v sekcii Assembler pod Windows.

Na vytvorenie kľúčov v registri Windows sa používa funkcia RegCreateKeyEx.

 

RegCreateKeyEx

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

advapi32.lib

advapi32.inc

Funkcia vytvorí špecifikovaný kľúč. V prípade, že takýto kľúč v registri Windows už existuje, dôjde k jeho otvoreniu.

Syntax:  LONG RegCreateKeyEx, HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, PSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult,            LPDWORD lpdwDisposition

HKEY hKey: Kľúč, pod ktorým sa má vytvoriť nový podkľúč (subkey). Môže to byť aj aktuálne otvorený kľúč alebo jeden z preddefinovaných koreňových kľúčov: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS.

LPCTSTR lpSubKey: Ukazovateľ na reťazec zakončený nulou, obsahujúci meno nového podkľúča. Ak podkľúč už existuje, dôjde k jeho otvoreniu. Tento podkľúč (subkey) sa nesmie začínať znakom  backslash, teda \. Tento parameter nemôže byť NULL.

DWORD Reserved: Rezervované, túto hodnotu nastavte na NULL.

LPTSTR lpClass: Ukazovateľ na reťazec zakončený nulou, ktorý obsahuje meno triedy kľúča. Tento parameter je ignorovaný, pokiaľ podkľúč už existuje.

DWORD dwOptions: Špecifikuje špeciálnu voľbu pre kľúč. Tento parameter môže byť jeden z nasledujúcich: REG_OPTION_NON_VOLATILE – dáta sa uchovávajú v pamäti a nezapisujú sa na disk. Nestále kľúče sa stratia pri znovuzavedení systému. Takisto funkcia RegSaveKey neukladá nestále kľúče. REG_OPTION_VOLATILE – dáta sú stále a ukladajú sa na disk. Pri znovuzavedení systému nedôjde k strate kľúčov. Funkcia RegSaveKey sa môže použiť na uloženie stavu registra stálych kľúčov. REG_OPTION_BACKUP_RESTORE – ak je tento flag nastavený, funkcia ignoruje parameter samDesired a pokusy otvoriť kľúč s požadovaným prístupom k zálohovaniu alebo obnove kľúča. Ak volaný thread mal SE_BACKUP_NAME privilégium nastavené na enabled, kľúč je otvorený s ACCESS_SYSTEM_SECURITY a KEY_READ právami. Ak volaný thread mal SE_RESTORE_NAME privilégium nastavené na enabled, kľúč je otvorený s ACCESS_SYSTEM_SECURITY a KEY_WRITE prístupom. Ak obidve privilégiá sú nastavené na  enabled, kľúč má kombinovaný prístup pre obidve privilégiá. Tento flag je vo Windows 95 ignorovaný.  Register vo Windows 95 nepodporuje bezpečnosť (security).

REGSAM samDesired: Určuje masku prístupu tak, že špecifikuje požadovanú bezpečnosť prístupu pre nový kľúč. Tento parameter môže byť kombináciou nasledujúcich hodnôt.

KEY_ALL_ACCESS – kombinácia KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, a KEY_SET_VALUE.

KEY_CREATE_LINK – povoľuje vytváranie symbolických spojení.

KEY_CREATE_SUB_KEY – povoľuje vytváranie podkľúčov (subkeys).

KEY_ENUMERATE_SUB_KEYS – povoľuje vymenovať podkľúče (subkeys).

KEY_EXECUTE – povoľuje prístup na čítanie.

KEY_NOTIFY – povoľuje oznamovanie zmien, vo Windows 95 nie je táto funkčnosť podporovaná.

KEY_QUERY_VALUE – povoľuje query na hodnotu podkľúča (subkey).

KEY_READ – kombinácia KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS a KEY_NOTIFY.

KEY_SET_VALUE – povoľuje zápis hodnôt podkľúčov (subkey).

KEY_WRITE – kombinácia KEY_SET_VALUE and KEY_CREATE_SUB_KEY.

LPSECURITY_ATTRIBUTES lpSecurityAttributes: Pointer na štruktúru SECURITY_ATTRIBUTES, ktorý určuje, či vrátený handle môže byť dedený child procesom. Ak lpSecurityAttributes je NULL, potom handle nemôže byť dedený. Windows NT: Člen štruktúry SECURITY_ATTRIBUTES –  lpSecurityDescriptor určuje security descriptor pre nový kľúč. Windows 95: Člen štruktúry SECURITY_ATTRIBUTES –  lpSecurityDescriptor je ignorovaný. Štruktúra SECURITY_ATTRIBUTES má tvar:

SECURITY_ATTRIBUTES STRUCT

  nLength               DWORD  ?

  lpSecurityDescriptor  DWORD  ?

  bInheritHandle        DWORD  ?

SECURITY_ATTRIBUTES ENDS

 

PHKEY phkResult: Ukazovateľ na premennú, do ktorej sa uloží handle otvoreného, resp. vytvoreného kľúča.

LPDWORD lpdwDisposition: Ukazovateľ na hodnotu, ktorá určuje, či bol kľúč otvorený (REG_OPENED_EXISTING_KEY), resp. vytvorený (REG_CREATED_NEW_KEY).

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby.

 

RegDeleteKey

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

advapi32.lib

advapi32.inc

 

Funkcia RegDeleteKey odstráni špecifikovaný kľúč. Táto funkcia nemôže odstrániť kľúč, ktorý má podkľúče.

Syntax: LONG RegDeleteKey, HKEY hKey, LPCTSTR lpSubKey

HKEY hKey: Handle aktuálne otvoreného kľúča alebo niektorá z nasledujúcich preddefinovaných hodnôt: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS. Kľúč určený parametrom lpSubKey musí byť podkľúč kľúča daného parametrom hKey.

LPCTSTR lpSubKey: Ukazovateľ na reťazec zakončený nulou, ktorý obsahuje meno podkľúča, ktorý bude vymazaný. Tento parameter nesmie byť NULL a daný podkľúč nesmie mať podkľúče.

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby.

 

RegDeleteValue

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

advapi32.lib

advapi32.inc

Funkcia RegDeleteValue odstráni hodnotu z podkľúča.

Syntax: LONG RegDeleteValue, HKEY hKey, LPCTSTR lpValueName

HKEY hKey: Handle aktuálne otvoreného kľúča alebo niektorá z nasledujúcich preddefinovaných hodnôt: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS.

LPCTSTR lpValueName: Ukazovateľ na reťazec zakončený nulou, obsahujúci meno hodnoty, ktorá sa má vymazať. Ak je tento parameter NULL alebo je to ukazovateľ na reťazec zakončený nulou, hodnota nastavená funkciou RegSetValue bude vymazaná.

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby.

 

RegEnumKeyEx

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

No

advapi32.lib

advapi32.inc

Funkcia zistí počet podkľúčov daného otvoreného kľúča.

Syntax: LONG RegEnumKeyEx, HKEY hKey,   DWORD dwIndex, LPTSTR lpName, LPDWORD lpcbName, LPDWORD lpReserved, LPTSTR lpClass, LPDWORD lpcbClass, PFILETIME lpftLastWriteTime

HKEY hKey: Handle aktuálne otvoreného kľúča alebo niektorá z nasledujúcich preddefinovaných hodnôt: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS.

DWORD dwIndex: Prístupový index podkľúčov. Tento parameter musí byť pri prvom volaní funkcie RegEnumKeyEx nastavený na nulu. Pre pohyb cez celý strom podkľúčov zväčšujte index tak dlho, dokiaľ nie je vrátená chybová hodnota ERROR_NO_MORE_ITEMS.

LPTSTR lpName: Ukazovateľ na pamäťový priestor, do ktorého sa uloží meno podkľúča vrátane ukončenia nulovým znakom. Funkcia kopíruje do pamäte iba meno podkľúča, nie celú hierarchiu kľúča.

LPDWORD lpcbName: Ukazovateľ na hodnotu DWORD, ktorá obsahuje veľkosť buffera lpName. Systém skúša kopírovať špecifikovaný počet znakov mena podkľúča do buffera. Počet musí zahŕňať aj jeden bajt na ukončenie nulovým znakom. Po vykonaní funkcie sa zmení obsah adries na počet znakov aktuálne kopírovaných do reťazca lpName. Všimnite si, že takto sa nezapočíta ukončovací nulový znak.

LPDWORD lpReserved: Rezervované, musí byť NULL.

LPTSTR lpClass: Ukazovateľ na buffer, do ktorého sa uloží meno triedy podkľúča. Počet znakov skopírovaných do tohto buffera je určený parametrom lpcbClass. Tento parameter môže byť NULL, ak sa nepožaduje žiadne meno triedy.

LPDWORD lpcbClass: Ukazovateľ na hodnotu DWORD, ktorá obsahuje veľkosť buffera lpClass. Systém skúša kopírovať špecifický počet znakov mena triedy podkľúča do buffera. Počet musí zahŕňať aj jeden bajt na ukončenie nulovým znakom. Po vykonaní funkcie sa zmení obsah adries na počet znakov aktuálne skopírovaných do reťazca lpClass.  Všimnite si, že sa takto nezapočítava ukončovací nulový znak. Tento parameter môže byť NULL, ak parameter lpClass obsahuje NULL.

PFILETIME lpftLastWriteTime: Ukazovateľ na pole, do ktorého sa uloží čas a dátum posledného zápisu do podkľúča.

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby.

 

RegEnumValue

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

advapi32.lib

advapi32.inc

Funkcia RegEnumValue zistí počet hodnôt aktuálne otvoreného kľúča.

Syntax: LONG RegEnumValue, HKEY hKey, DWORD dwIndex, LPTSTR lpValueName, LPDWORD lpcbValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData      

HKEY hKey: Kľúč, pre ktorý sa má zistiť počet jeho hodnôt. Môže to byť aktuálne otvorený kľúč alebo jeden z nasledujúcich preddefinovaných kľúčov: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS.

DWORD dwIndex: Špecifikuje index získanej hodnoty. Tento parameter musí byť pri prvom volaní funkcie RegEnumValue nastavený na nulu a pri ďalšom volaní musí byť vždy zväčšený o jednu. Pretože hodnoty nie sú usporiadané, ľubovoľná nová hodnota bude mať ľubovoľný index. Toto umožňuje, že funkcia môže vrátiť hodnoty v ľubovoľnom poradí.

LPTSTR lpValueName: Ukazovateľ na buffer, do ktorého sa uloží meno hodnoty, vrátane ukončenia nulovým znakom.

LPDWORD lpcbValueName: Ukazovateľ na hodnotu DWORD. Hodnota určuje počet bajtov (vrátane ukončovacieho nulového znaku), ktoré sú požadované na uloženie v parametri lpValueName pri návrate. Po zavolaní funkcie táto hodnota určuje počet bajtov (neráta sa sem ukončovacia nula), ktoré sa uložili do buffera.

LPDWORD lpReserved: Rezervovaná hodnota, tento parameter nastavte na NULL.

LPDWORD lpType: Ukazovateľ na hodnotu DWORD, do ktorej sa uloží typ dát hodnoty. lpType môže byť NULL, ak sa nepožaduje žiadny typ dát, inak je to jedna z nasledujúcich hodnôt:

REG_BINARY – binárne dáta v ľubovoľnej forme.

REG_DWORD – 32-bitové číslo.

REG_DWORD_LITTLE_ENDIAN – 32-bitové číslo vo formáte little-endian (to isté ako REG_DWORD). V tomto formáte je najvyšší bajt najvýznamnejším bajtom slova. Toto je najvšeobecnejší formát pre počítače bežiace na systémoch Windows NT a Windows 95.

REG_DWORD_BIG_ENDIAN – 32-bitové číslo vo formáte big-endian. V tomto formáte je najnižší bajt najvýznamnejším bajtom slova.

REG_EXPAND_SZ – reťazec zakončený nulou, ktorý obsahuje nerozložené reference pre premenné prostredia (napríklad: "%PATH%"). Či to bude Unicode alebo ANSI reťazec, závisí od toho, či použijete funkcie Unicode alebo ANSI. Windows 95 dovoľujú, aby tieto reťazce boli uložené, ale neboli automaticky rozšírené.

REG_LINK – symbolická linka pre iný podkľúč (Unicode symbolic link).

REG_MULTI_SZ – pole reťazcov zakončených nulou. Pole sa končí zdvojeným nulovým znakom.

REG_NONE – nedefinovaný typ.

REG_RESOURCE_LIST – device-driver resource list.

REG_SZ –reťazec zakončený nulou. Či to bude Unicode alebo ANSI reťazec, závisí od toho, či použijete funkcie Unicode alebo ANSI.

LPBYTE lpData: Ukazovateľ na buffer, do ktorého sa uloží obsah hodnoty.

LPDWORD lpcbData: Ukazovateľ na hodnotu DWORD, ktorá obsahuje počet bajtov v lpData bufferi. Tento parameter môže byť NULL, ak je lpData NULL.

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby. Pokiaľ daný podkľúč nemá žiadne ďalšie hodnoty, vráti sa ERROR_NO_MORE_VALUES.

 

RegFlushKey

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

No

advapi32.lib

advapi32.inc

Funkcia RegFlushKey zapíše všetky atribúty špecifikovaného otvoreného kľúča do registra Windows. Volanie tejto funkcie je potrebné iba vtedy, keď aplikácia požaduje bezprostredný zápis spojený s aktualizáciou. Časté používanie tejto funkcie môže negatívne ovplyvniť výkon celého systému.

Syntax: LONG RegFlushKey, HKEY hKey

HKEY hKey: Kľúč, ktorý má byť zapísaný do registra Windows. Môže to byť handle aktuálne otvoreného kľúča alebo ľubovoľný z nasledujúcich preddefinovaných hodnôt: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS.

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby.

 

RegLoadKey

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

No

advapi32.lib

advapi32.inc

Funkcia RegLoadKey vytvorí podkľúč pod HKEY_USERS alebo HKEY_LOCAL_MACHINE, ktorých obsahy sa zavedú zo špecifikovaného hive súboru do podkľúča. Hive je kolekciou kľúčov, podkľúčov a hodnôt reprezentovaných jedným súborom alebo súborom typu *.log. Na vytvorenie hive súboru použite funkciu RegSaveKey.

Syntax: LONG RegLoadKey, HKEY hKey, LPCTSTR lpSubKey, LPCTSTR lpFile

HKEY hKey: Určuje kľúč, kde budú vytvorené podkľúče. Môže to byť HKEY_USERS, HKEY_LOCAL_MACHINE alebo návratová hodnota funkcie RegConnectRegistry.

LPCTSTR lpSubKey: Ukazovateľ na reťazec zakončený nulou, ktorý obsahuje meno podkľúča.

LPCTSTR lpFile: Ukazovateľ na reťazec zakončený nulou, ktorý obsahuje meno súboru hive. Tento súbor musí byť vytvorený funkciou RegSaveKey. V súborovom systéme FAT nesmie mať meno súboru príponu.

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby.

 

RegOpenKeyEx

Windows NT

Win 95

Win32s

Lib

Include

Áno

Áno

Áno

advapi32.lib

advapi32.inc

Funkcia RegOpenKeyEx otvorí špecifikovaný kľúč.

Syntax: LONG RegOpenKeyEx, HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult

HKEY hKey: Handle kľúča, ktorý sa má otvoriť. Môže to byť handle aktuálne otvoreného kľúča alebo ľubovoľná z nasledujúcich preddefinovaných hodnôt: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS.

LPCTSTR lpSubKey: Ukazovateľ na reťazec zakončený nulou, obsahujúci meno podkľúča, ktorý sa má otvoriť. Ak je tento parameter NULL alebo pointer na prázdny reťazec, funkcia otvorí nový handle kľúča zadaného v hKey parametri. V tom prípade funkcia nezatvorí otvorené identifikátory kľúčov.

DWORD ulOptions: Rezervované, tento parameter musí byť nastavený na NULL.

REGSAM samDesired: Určuje masku prístupu tak, že špecifikuje požadovanú bezpečnosť prístupu pre nový kľúč. Tento parameter môže byť kombináciou nasledujúcich hodnôt.

KEY_ALL_ACCESS – kombinácia KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, a KEY_SET_VALUE.

KEY_CREATE_LINK – povoľuje vytváranie symbolických spojení.

KEY_CREATE_SUB_KEY – povoľuje vytváranie podkľúčov (subkeys).

KEY_ENUMERATE_SUB_KEYS – povoľuje vymenovať podkľúče (subkeys).

KEY_EXECUTE – povoľuje prístup na čítanie.

KEY_NOTIFY – povoľuje oznamovanie zmien, vo Windows 95 nie je táto funkčnosť podporovaná.

KEY_QUERY_VALUE – povoľuje query na hodnotu podkľúča (subkey).

KEY_READ – kombinácia KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, a KEY_NOTIFY.

KEY_SET_VALUE – povoľuje zápis hodnôt podkľúčov (subkey).

KEY_WRITE – kombinácia KEY_SET_VALUE and KEY_CREATE_SUB_KEY.

PHKEY phkResult: Ukazovateľ na miesto v pamäti, kam sa uložil handle otvoreného kľúča.

Výsledok funkcie: LONG: Ak sa funkcia skončila úspešne, návratovou hodnotou je ERROR_SUCCESS, inak vráti kód chyby.

Literatúra

  1. Simon, R. J. – Gouker, M. – Barnes, B. C.: Win32 API. Zväzok 1, 2, 3. UNIS publishing, Brno 1997.
  2. Richter, J.: Windows pro pokročilé a experty. Computer Press, Praha 1997.
  3. Petzold, Ch.: Programování ve Windows. Win32 API. Computer Press, Praha 1999.

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Tipy a triky: Ako na snímku obrazovky na akomkoľvek počítači s Windows?

02.12.2016 00:13

Ak snímky obrazovky robíte často apotrebujete napríklad funkcie na posun stránok alebo snímanie zobrazenia pri vyššom rozlíšení displeja, zrejme používate nejakú špecializovanú aplikáciu. Väčšina použ ...

Ako na to 1

Tipy a triky: Ako aplikácii prednastaviť spúšťanie s administrátorskými právami?

30.11.2016 00:10

Väčšina aspoň trochu skúsenejších používateľov vie, že aj keď máte na operačnom systéme Windows vytvorený administrátorský účet, aplikácie pre bezpečnosť nefungujú vždy splnými administrátorskými práv ...

Ako na to 2

Tipy a triky: Ako vypnúť uzamykaciu obrazovku vo Windows 10?

29.11.2016 00:10

Rozčuľuje vás, že pred každým prihlásením doúčtu vášho počítača musíte prejsť uzamykacou obrazovkou? Windows 10 na tejto obrazovke ukazuje čas,dátum anejakú zaujímavú fotografiu zrôznych kútov sveta. ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá