No permission to access the Registry
Have you ever tried to install a program and got the message You do not have permission to access the Registry, or Installation failed, not enough memory? Or perhaps when you want to uninstall a piece of software you get a message that some file will not be deleted because it is shared? Want to know how to fix them, read on.
Well these error messages are normally caused by the Registry Key HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ SharedDLLs. This is the Key that shared files are listed in.
A shared file is a file that is installed by either Windows or another piece of software that other programs can use. An example of a shared file would be MsInet.ocx that requires an internet interface. This file is used by all programs written in Visual Basics. So if Progam A installs it to Windows\System and lists the file as shared then it should not get deleted when program A gets uninstalled. The reason is if program B is installed after Program A and it needs the file MsInet.ocx it will not install it because the file already exists. Needless to say after program A gets uninstalled and if it deletes the file, Program B will not run.
If this Key is more than 64KB in Windows 95 or too large in any version of Windows you will get a error when trying to install new software that wants to list its' files there. You can get a error "Out of Menory", or "You do not have permission to access the Registry".
You get an error when uninstalling a program, a file may not be removed from your system if it is listed in this Key.
If a file is listed here an uninstall program or Windows will think that it should not be deleted when uninstalling software. If the Key is full, a Setup program will be unable to write to it. Hence, No permission to access the Registry.
If you look at the values and data in this Key you will see that there are a lot of entries there that are not really pointing to a shared file. If they are pointing to a Windows\System file, they maybe shared, and I use this term maybe, lightly. But if they point to a file in a program's folder such as C:\MAPTECH\MTSHARED\ALARMSVR.DLL then they are not shared with other programs. If it points to a bitmap file, it is not shared either.
So with this in mind it is time to clean out the Key. Start RegEdit.exe and go to HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ SharedDLLs. Open the Key to see the contents and Export this Key to the Windows folder and save it as Verify.reg to your Windows folder. The Export function is under the Menu bar item "Registry" in RegEdit .
Now start Registry Drill and go to the Deep Drill, click on Start and when you are told that there is an existing Registry Verifying file, tell the Drill you want to use it, answer no to make a new one. If asked to start at a particular line number answer no. In a few seconds you will see a different interface.
Look down the list, this list contains all the files that are not DLLs, OCX, TLB or DEP files. You can delete all entries that are NOT located in the Windows System folder, or in Program Files\ Common Files\?. Twunk.exe and Twunk32.exe are shared files so if you have them leave them. System files with a DEP or SRG extension maybe left undeleted. BMP and GIF files are definitely not shared files. OCX and TLB file in the System Folder are shared in most cases, do not delete them unless you are sure what program placed them there. If you do delete an entry that is really for a shared file, nothing will happen to your system. This Key is there for reference only and does not control any software.
Once you have finished deleting the entries that are not shared files click on Show All Entries and review the list.
Once you have finished cleaning the list, click on Continue and the drill will verify that all the files are still on your computer. If the Drill finds an entry pointing to a deleted file you may go to the Key and delete that entry.
You can Export any Key in the Registry and have the Deep Drill verify all its' Keys, without having to go through the entire Registry just by doing what you did with the ShareDlls Key.