detect which dll is registered?
Hi,
on a target PC several versions of a dll exist in different folders and I don't know the folders.
How do I know which dll is currently registered = active?
TIA,
xiris
Archive: detect which dll is registered?
detect which dll is registered?
Hi,
on a target PC several versions of a dll exist in different folders and I don't know the folders.
How do I know which dll is currently registered = active?
TIA,
xiris
That depends on the DLL. Every DLL saves information differently or doesn't save information at all. If it's a COM DLL, you can normally find its path under HKCR\CLSID\{dll guid}\InprocServer32.
It is a COM-DLL, it has been registered with Regsvr32.
Scenario on target-PC:
c:\windows\mydll.dll
c:\tools\mydll.dll <- this dll is registered=active
d:\software\mydll.dll
I want to find out which dll is currently active on the target PC so I can e.g. check it's version.
Can I detct via NSIS which of the Dlls is currently used?
TIA,
xiris
NSIS is actually used to created installers ;) and, yes via a Process plugin you could detect if a DLL is running. This is hower not a trivial task.
Better is to refrase your question I think: If we would know what ultimately you want to achieve, we could give a more detailed and helping answer.
@onad
Ok - I'll try to clarify the task. On the target PC we have several products that use a dll with a certain name.
My NSIS Installer is only allowed to update a specific dll if the version is 11.22.33.44. I know the absolute path of this dll and so I can check it's version using ${GetFileVersion}.
So far so good. But I also have to make sure that this dll is the one which is still used = which is still registered. If 'my' dll is no longer active and I install a new version I might break the other product's active dll which is installed in a different absolute path which I don't know.
So if NSIS could tell me from the registry the path of the dll which is currently registered I could act on the save side.
TIA,
xiris