Ho bisogno di verificare che alcune DLL in questo caso (ma non escludo successivamente ocx ecc..) siano già registrate col comando regsvr32 altrimenti le devo registrare.
ho scritto queste righe guardando nel registro la posizione di una dll VB6
controllo solo che tra tutte le CLSID esista il percorso file passato e che la versione del file del pc sia uguale con la Version del registro.
Tutto qua apposto..
poi ho cercato di verificare una dll di altri programmi.. e anche se sono registrate la funzione sopra non funziona.
Infatti ho notato che in quel percorso la dll non si trova ma si trova come chiave in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls e non capisco cosa sia il numero di valore associato e non saprei come ricavarne il numero di versione registrata. Da precisare che la mia dll VB6 in quest'ultimo elenco non compare neanche registrandola di nuovo.
un'altra DLL invece ha un comportamento molto più curioso non si trova sotto CLSID ma in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\6EC321234593537439154AEE419BF08A
con chiave 6EC321234593537439154AEE419BF08 e valore C?\WINDOWS\system32\nomedll.dll .. è molto curioso il C?\ al posto del C:\
mentre sempre nel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls risulta come chiave col percorso corretto e con valore che non so il significato.
Morale della favola..Dove e cosa devo cercare per sapere se una DLL di una determinata versione sia istallata o meno?
grazie...
ciao
Vincenzo
Programmatore sbilenco