Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
Occasionalmente nell'uso dei sistemi Windows 2000/XP si verifica una sgradevole situazione in cui al primo richiamo di un controllo ActiveX esterno è avviato automaticamente il programma Windows Installer e la richiesta può durare anche un certo numero di secondi e può riproporsi anche svariate volte. In alcuni casi basta semplicemente inserire il CD richiesto, mentre in altri casi la situazione può risultare insostenibile e la formattazione del disco sembra essere l'unica soluzione. Il progetto allegato a quest'articolo si occupa di eliminare i valori dal registro erronei che ingannano Windows Installer e consente anche di attivare un log delle attività da consultare in caso di problemi.
Ciò che segue è una descrizione del problema ed una spiegazione di cosa il programma effettua per cercare di risolverlo. Tutte le librerie ActiveX sono registrate all'interno del registro di Windows (detto registry) e tali informazioni contengono il ProgID ovvero il nome completo del componente, solitamente formato da NomeLibreria.NomeClasse, il CLSID (Class Identifier) che identifica univocamente ogni classe COM nel sistema, la versione della libreria in maniera da poter scegliere la versione corretta prima di richiamarla e non ultimo il percorso del file system in cui si trova la libreria. A queste si aggiungono numerose informazioni aggiuntive. L'errore in questione si verifica quando all'interno della chiave del CLSID del componente è presente sia una sottochiave di nome InprocServer32 (il che è normale) che un valore in questa con lo stesso nome. Questo valore dovrebbe indicare la posizione in cui si trova il componente, ma a volte inspiegabilmente il servizio di gestione non riesce a trovare il percorso indicato in maniera criptata nel registro, come }JASa_30'?FwB0CFi2iuCOMCTL32>xuPisIgof(2r9efGjyo1. Il Windows Installer incaricato di installare il componente se questo non dovesse essere stato già installato completamente, rileva tale percorso, avvia l'installazione (vedi la Figura in alto) e solo dopo questa fase rileva che non è in grado di recuperare la locazione indicata. Il progetto in questione alla pressione del pulsante Effettua l'analisi presenta un elenco di tutte le chiavi criptate, con il loro ProgID e CLSID a fianco; l'utente dovrà semplicemente selezionare i componenti che presentano il difetto mettendo la spunta alla sinistra e quindi cliccare il pulsante Elimina i valori selezionati, i valori scelti saranno eliminati e con essi le richieste di Windows Installer. Nella cartella del programma sarà comunque salvata una copia di backup dei valori eliminati; in caso di problemi l'utente potrà semplicemente fare doppio click sul file BACKUP.REG per ripristinare la situazione precedente.
La CheckBox a destra Solo Componenti effettuerà un controllo aggiuntivo sui valori rilevati e riporterà soltanto quelli che corrispondono a componenti ActiveX. In tal modo si potra evitare la scelta di classi che non si rifanno a componenti.
La parte superiore del form invece contiene una CheckBox che consentirà l'attivazione del debug degli errori, anche dopo che il programma verrà chiuso o il PC riavviato. I due pulsanti a fianco consentiranno la visualizzazione e l'eliminazione del registro degli errori generato. È una buona idea avviare il debug prima di prendere qualsiasi
azione, avviare quindi il programma che presenta la richiesta di Windows
Installer, visualizzare il registro degli errori e solo dopo eliminare
i valori che sono riportati nel registro degli errori. |
Il programma è stato scritto ad uso personale e l'autore solleva ogni responsabilità da possibili danni causati dall'azione dello stesso. Si raccomanda di conservare il file BACKUP.REG in modo da poter ripristinare la situazione in caso dovessero presentarsi problemi successivi all'eliminazione dei valori. Fibia FBI
|
Torna all'indice degli articoli |