http://digilander.libero.it/Cenati

Registrare DLL e OCX

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript

 

 

 

 

 

Cosa significa "Registrare una DLL" o un OCX?

VbScript può utilizzare gli "oggetti" presenti nel registrod di sistema di Windows. Nella maggior parte degli script che ho pubblicato su questo sito si usano gli oggetti che sono già presenti in ogni insallazione del sistema operativo. In alcuni casi, però, succede che lo script non riesca ad istanziare gli oggetti richiesti. In pratica si genera un errore alla linea che contiene l'istruzione "createobject".

Questo può succedere per molti motivi diversi.

Ad esempio cercate di istanziare Word o Excel su un computer in cui non c'è alcuna installazione di Office. In questo caso la soluzione è quella di cercare un computer adatto oppure installare Office.

In un secondo caso potreste avere comprato un componente OCX e lo volete usare. Ma provando gli script di esempio ottenete un errore (ad esempio un componente che mostra un calendario, oppure per accedere ad un server di posta elettronica).

In un terzo caso, avete uno scritp che vi funzionava fino a qualche tempo fa ma che ora, dopo aver lanciato uno di quei programmi di pulitura del registro, non funziona più. Ad esempio il programma BatchBrowser non funziona più.

La motivazione agli ultimi due casi è che manca la registrazione del componente in Windows.

Manca perchè non è mai stata effettuata oppure manca perchè è stata rimossa.

La soluzione è che bisogna registrare il componente mancante.

Un'ultima nota prima di passare alla registrazione del componente: questi componenti COM (common object model) sono stati chiamati, da un certo punto in poi, componenti Active/X. Si tratta solo di un cambiamento nel nome ma non nella sostanza.

Come si registra una DLL o un componente OCX?

Nella sottodirectory "System" di Windows c'è un programma che serve appositamente per installare e disinstallare i compontnti dei quali stiamo parlando.

Basta invocare questo comando senza alcun parametro per mostrare un esempio di come si usa. Ecco la finestra che viene mostrata.

Quindi per registrare una dll (ad esempio la msxml3.dll) basta usare il comando

regsvr32 msxml3.dll

Mentre per cancellarla dal registro di sistema si usa

regsvr32 /u msxml3.dll

La libreria che ho usato come esempio è quella che è utilizzata dal programma batchbrowser. E' installata da Internet Explorer, ma se avete usato un programma di pulitura del registro potrebbe essere stata rimossa (dal registry, ma non cancellata dal disco fisso).

Questo accade perchè per determinare quali dll sono inutilizzate non si indagano anche gli scripts, ma solo gli eseguibili. In ogni evenienza, qui sopra è descritto come comportarsi per ripristinare la situazione.

Ci sono alcuni casi in cui non è sufficiente registrare il file ocx o dll. Uno l'ho già citato quando ho parlato di Office: Anche registrando la singola dll mancante non si ottiene il risultato sperato in quanto questa si appoggia ad una serie di altri files che risulterebbero mancanti.

Per questi casi, che sono frequenti, bisogna installare tutto il pacchetto (a volte fornito in un file eseguibile autoscompattante, oppure con un programma di setup) e poi è possibile cancellare e ripristinare la registrazione a piacimento.

Un caso diverso riguarda invece gli oggetti scritti appositamente per una diversa versione di Windows, che quindi generano un messaggio di errore nel momento in cui si tenta la registrazione.

Giovanni Cenati

 
 

Cenati Giovanni 2004/2010 - http://digilander.libero.it/Cenati - Reventlov at Katamail com

home | e-mail e contatti | Introduzione al sito | Cosa e' e come imparare VbScript