Visual Basic 6'da, Project> Referanslar 'a erişmeye çalıştığımda hata veriyor:
Sistem kayıt defterine erişme hatası
Ben:
regedt32.exedosyasını çalıştırabilir ve tüm kayıt defteri anahtarlarına erişebilirim.
VB6 yerel yönetici olarak kuruldu.
Neden olduğuna dair fikri olan?
Kristal raporlar 8.5 çalıştırıyorum ve bu sorunu zaten çözmem gerekiyordu ama görünüşe göre sorun hala 8.5 yüklü. Ayrıca, kristal raporları tekrar denemeye çalışarak sorun hakkında bir şansım olmadı.
Sahip olduğunuz Windows işletim sistemine bağlı olarak (Windows 7 Enterprise var), REGTLIB.EXE dosyasına (C:\Windws içinde bulunur) yönetici hakları vermeyi deneyebilirsiniz. REGTLIB.EXE dosyasına sağ tıklayın. Açılır menüden Özellikler'i seçin. Ardından Uyumluluk sekmesini seçin. Uyumluluk sekmesinde, Bu programı Yönetici olarak çalıştır onay kutusunu işaretleyin/seçin. Değişikliklerinizi kaydetmek için Tamam'ı tıklayın. Sorunu sizin için halledebilir. Benim için çalıştı. İyi şanslar.
Benim için bu çalıştı:
Office 2010 (Beta) Word kullanıyorsanız (görünüşte) sınırlı bir kayıt defteri anahtarı yazar. VB kayıt defterini tararken hatayı atar. Sahip olduğum anahtar: HKCR\TypeLib {00020905-0000-0000-C000-000000000046}\8.5
Regmon için - Proses Adı için Filtre -> "vb6.exe" ve Sonuç -> "ERİŞİM DENİZİ". Çok hızlı bir şekilde bulmanıza yardımcı olur.
PSToosl (PSEXEC) ile kayıt defteri düzenleyicisini çalıştırma sorunu giderildi (komut satırı psexec -i -d -sc:\windows\regedit.exe, Yönetici Olarak Çalıştır komut satırından. HTH Jim. Windows 7 (x64) kutusu Yükseltilmiş izinler PSTools çözümü gerektirir. XP biraz daha az kurtulabilir.
Bunu VB6'nın geliştirilmesinde kullandığım bir makinede buldum. VB6'dan (ikili uyumluluk olmadan) bir sürü COM DLL dosyası oluşturdum ve kayıt defterinde oluşturulan kıtlık çok fazla oldu.
Kayıt defterinin boyutunun ne olduğuna ve hangi sınırın belirlendiğine bir bakın. Kayıt büyüklüğünü iki katına çıkardım ve daha sonra iyi bir kayıt defteri hoover'ı aramaya başladım.
Hangi kayıt defteri anahtarlarına erişildiğini görmek için İşlem İzleyicisi yöntemlerini deneyebilirsiniz.
İşte Microsoft'tan bir çözüm. Crystal Reports sorununa atıfta bulunur, ancak çözüm yalnızca HKEY_CLASSES_ROOT\CLLID ve HKEY_CLASSES_ROOT\CLSID kayıt defteri dallarının soluk tuşlar üzerinde gezinmesi ve bu tuşların güvenliğini düzeltmesi için regedit32 komutunu kullanır. Regedit32'nin anahtara erişememesi durumunda güvenliği düzeltmek için talimatlar da vardır. Makale numarası: 269383
Windows 7'de Başlat menüsüne gidin, ardından "Microsoft Visual Basic 6" üzerine sağ tıklayın, ardından özellikleri seçin ve beliren iletişim kutusundan Uyumluluk'a tıklayın ve ardından "Bu programı yönetici olarak çalıştır" seçeneğini işaretleyin.
VB6'yı Win7-64'e kurduğumda (bir arama motorunun kolayca bulduğu talimatları kullanarak), işe yaradı. UAC kapalıydı - yani "asla bildirimde bulunma" olarak ayarlandı.
Birkaç hafta sonra UAC'yi açtım - yani varsayılan ayarına getirdim. VB6 sonra "Sistem kayıt defterine erişilirken hata oluştu" sorunu nedeniyle derleme yapılamadı. Ne yazık ki, tekrar kapatmak yardımcı olmadı. Görünüşe göre açarak verilen zarar geri döndürülemezdi. Bunun neden olması gerektiğini açıklayamıyorum, ama bu benim deneyimim.
UAC'den ayrılırken REGTLIB.EXE yönetimsel ayrıcalıklarını vermek harika bir fikir gibi geldi, ancak bu da benim için işe yaramadı.
Son olarak, buradaki diğer yazılarda açıklandığı gibi İşlem İzleyicisi ve PsTools'u kullanarak çalıştı. Ancak, kayıt defterimin büyük bölümlerine Herkese Tam Kontrol vermek zorunda kaldım. Bu sadece izole anahtarlar için geçerli değildi. Derleyicinin ana düğümlere anahtarlar eklemesi gerekiyor, bu yüzden bütün bu düğümleri açmak zorunda kaldım.
Bu adımlarla çalışmanın saatler sürdüğü gerçeğinin yanı sıra, şimdi UAC aracılığıyla güvenliği artırmaya çalışmadığımdan çok daha fazla maruz kaldım, ancak VB6'ya ihtiyacım var ve yeni bir bilgisayardan başka bir çözüm göremiyorum.
Ders: VAC6 ile UAC kullanmayın. Buraya geldiysen bunun için çok geç.
VB6 kurulum sorunu var. VB6'yı sisteminize yeniden yerleştirmeyi deneyin. Aksi takdirde "Yönetici olarak çalıştır" ile "visual studio 6.0" 'ı açın. Ardından proje/.vbp dosyanızı açın/- Yeni Proje -> Mevcut sekmesi ile tarayın.
Belki de "Kullanıcı Hesabı Kontrol Ayarları" na gitmeyi denemeye değer. Saygılarımızla,
Bütün bunları bir Windows 7 makinesinde denedim, ancak SYSTEM kayıt defteri üzerinde tam kontrol sağlayarak sorunu düzelttim. Hangi anahtar VB6 SP6B'nin okuduğunu veya yazdığını bilmiyorum. Bu yüzden haklarla geri dönmeye çalıştım ve sorun geri döndü. Bu yüzden düzelttim, bu bir kibarlık yarattı.
Sorunu çözdüm. Ancak yukarıdaki önerilerin hiçbiri işe yaramadı. Yaptığım şey, kayıt defterinde
SYSTEM anahtarı üzerinde herkese tam kontrol vermek. Bu bir güvenlik açığı yaratır. Ben 64bit Windows 7 ile vb6 hizmet paketi 6B çalıştırıyorum.
Windows 10 Pro (10.0.16299 Build 16299) 64 bit kullanıyorum. Bir VB6 DLL derlemeye çalışırken bu hatayı yaşıyordum.
Bu yazıda, uyumluluk modunda yönetici olarak çalıştırma hakkında birkaç cevap gördüm. İlk önce sadece Windows için uyumluluk modu XP (sp2) ile çalışmayı deneyeceğimi düşündüm. Kutuyu kontrol ettikten sonra DLL dizimi derleyebildim. Yapmadım yönetici olarak çalışmam gerekiyor.
Bunu denedin mi bunu? Temelde, bu bir kristal raporları sorunu gibi görünüyor. Umarım yardımcı olur.