Při volání aplikace API RegisterTypeLib zaregistrovat knihovnu typů v systému Windows Vista zobrazí chybová zpráva: "Přístup odepřen"

Příznaky

Zvažte následující scénář. V aplikaci, která je spuštěna v počítači se systémem Windows Vista zkuste přiřadit jiný podstrom registru podstrom registru HKEY_CLASSES_ROOT . Například pokusíte mapovat podstrom registru HKEY_CLASSES_ROOT podstromu registru HKEY_CURRENT_USER . Jestliže aplikace volá RegisterTypeLib API zaregistrovat knihovnu typů, může se zobrazit následující chybová zpráva:
Přístup byl odepřen
Navíc RegisterTypeLib API vrátí hodnotu TYPE_E_REGISTRYACCESS (0x8002801c).

K tomuto problému dochází, pokud je povolen nástroj Řízení uživatelských účtů (UAC) a aplikace běží pod omezeným uživatelským účtem.

Řešení

Informace o aktualizaci Service pack

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro systém Windows Vista. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
935791 jak získat nejnovější aktualizaci service pack pro systém Windows Vista

Informace o opravě hotfix

Společnost Microsoft má k dispozici podporovanou opravu hotfix. Tato oprava hotfix je však určena pouze problému popsanému v tomto článku. Použití této opravy hotfix pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud nejste vážně ohrožen tímto problémem, doporučujeme počkat na další aktualizaci softwaru, která obsahuje tuto opravu hotfix.

Pokud je oprava hotfix k dispozici ke stažení, je v horní části tohoto článku znalostní báze Knowledge Base oddíl "Oprava Hotfix je dostupná ke stažení" . Pokud tato sekce není uvedena, obraťte se na Zákaznický servis a podporu společnosti Microsoft k získaní opravy hotfix.

Poznámka: Pokud nastanou další problémy nebo bude nutné další řešení potíží, bude možná třeba vytvořit další samostatný požadavek na služby. Běžná cena za technickou podporu se vztahuje k dodatečným otázkám podpory a k problémům, které se netýkají této konkrétní opravy hotfix. Úplný seznam telefonních čísel služeb zákazníkům společnosti Microsoft a podpoře nebo vytvořit zvláštní požadavek na službu naleznete na následujícím webu společnosti Microsoft:Poznámka: Ve formuláři „Oprava hotfix je dostupná ke stažení“ se zobrazují jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, to je protože oprava hotfix není k dispozici pro daný jazyk. Po instalaci této opravy hotfix je nutné povolit opravu hotfix. Další informace naleznete v "Povolit opravu hotfix".

Předpoklady

Musíte mít nainstalován do použití této opravy hotfix systému Windows Vista.

Požadavek na restartování

Po instalaci této opravy hotfix musíte restartovat počítač.

Informace o nahrazení opravy hotfix

Tato oprava hotfix nenahrazuje žádné další opravy hotfix.

Informace o souborech

Anglická verze této opravy hotfix má atributy (nebo pozdější atributy souborů) uvedené v následující tabulce. Kalendářní data a časy jednotlivých souborů jsou uvedeny v koordinovaném světovém čase (UTC). Při zobrazení informací o souboru je převeden na místní čas. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo v položce Datum a čas v okně Ovládací panely.
Systém Windows Vista, verze x86
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
X86_4bbe5d294834975fb80c47470752adb1_31bf3856ad364e35_6.0.6000.20604_none_dea9a3d5aecfc0a3.manifestNení k dispozici70223-May-200719:26Není k dispozici
X86_microsoft-windows-ole-automation_31bf3856ad364e35_6.0.6000.20604_none_bba787f5176daa36.manifestNení k dispozici88,60923-May-200719:28Není k dispozici
Oleaut32.dll6.0.6000.20604558,59223-May-200704:43x86
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
X86_4bbe5d294834975fb80c47470752adb1_31bf3856ad364e35_6.0.6000.20604_none_dea9a3d5aecfc0a3.manifestNení k dispozici70223-May-200719:26Není k dispozici
X86_microsoft-windows-ole-automation_31bf3856ad364e35_6.0.6000.20604_none_bba787f5176daa36.manifestNení k dispozici88,60923-May-200719:28Není k dispozici
Oleaut32.dll6.0.6000.20604558,59223-May-200704:43x86
Update.mumNení k dispozici2,00123-May-200719:26Není k dispozici
Systém Windows Vista, 64bitové verze
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
Amd64_4a6574fa45a2d59d7249caa900399476_31bf3856ad364e35_6.0.6000.20604_none_cd312e3fb1af0597.manifestNení k dispozici70623-May-200719:26Není k dispozici
Amd64_65563c6fd47be510b29634938ca65f92_31bf3856ad364e35_6.0.6000.20604_none_21b539ccf0659813.manifestNení k dispozici70623-May-200719:26Není k dispozici
Amd64_microsoft-windows-ole-automation_31bf3856ad364e35_6.0.6000.20604_none_17c62378cfcb1b6c.manifestNení k dispozici86,22723-May-200719:33Není k dispozici
Package_1_for_kb935200~31bf3856ad364e35~amd64~~6.0.1.0.mumNení k dispozici1,79523-May-200719:26Není k dispozici
Package_2_for_kb935200~31bf3856ad364e35~amd64~~6.0.1.0.mumNení k dispozici2,01223-May-200719:26Není k dispozici
Update.mumNení k dispozici1,90923-May-200719:26Není k dispozici
Wow64_microsoft-windows-ole-automation_31bf3856ad364e35_6.0.6000.20604_none_221acdcb042bdd67.manifestNení k dispozici86,47523-May-200719:33Není k dispozici
Oleaut32.dll6.0.6000.20604867,84023-May-200705:54x64
Oleaut32.dll6.0.6000.20604558,59223-May-200704:43x86

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části "Platí pro". Tento problém byl poprvé opraven v aktualizaci Windows Vista Service Pack 1.

Další informace

Povolit opravu hotfix

Po instalaci této opravy hotfix musí použijete jednu z následujících metod Chcete-li povolit opravu hotfix.

Metoda 1

Tato oprava hotfix přidá nové rozhraní API. Před aplikace volá RegisterTypeLib API, aplikace mohou volat funkce void OaEnablePerUserTLibRegistration povolení RegisterTypeLIb API použít mapování příslušné přepsání. Funkce OaEnablePerUserTLibRegistration exportována ze souboru Oleaut32.dll. Tento soubor musí odkazovat pomocí běhu dynamické propojení a pomocí funkce GetProcAddress . Další informace o funkci GetProcAddress a dynamické propojení runtime naleznete na následujícím webu společnosti Microsoft:

Metoda 2

Po instalaci opravy hotfix RegisterTypeLib API zkontroluje systémové proměnné OAPERUSERTLIBREG . Pokud je hodnota proměnné OAPERUSERTLIBREG 1, bude RegisterTypeLIb API použít mapování příslušné přepsání. Vzhledem k tomu, že tato proměnná prostředí je čten během inicializace DLLMain funkce, je nutné nastavit tuto proměnnou prostředí před spuštěním aplikace. Chcete-li to provést, spusťte jeden z následujících příkazů na příkazovém řádku:
  • nastavit OAPERUSERTLIBREG = 1
  • Spustit cmd.exe /c "nastavit OAPERUSERTLIBREG = 1 & & MyApp.exe"

    Poznámka: MyApp.exe zástupný symbol odkazuje na aplikaci, kterou chcete spustit.
Poznámka: První příkaz nastaví pouze proměnné prostředí. Druhý příkaz nastaví proměnnou prostředí a potom spustí aplikaci. Pokud použijete první příkaz, musí také spustit aplikace tohoto příkazového řádku.
Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Odkazy

Další informace o podstrom registru HKEY_CLASSES_ROOT naleznete na následujícím webu společnosti Microsoft:Další informace o RegisterTypeLib API naleznete na následujícím webu společnosti Microsoft:
Vlastnosti

ID článku: 935200 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor