Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - da codice vb6 sapere se un ocx è già registrato
Forum - Visual Basic 6 - da codice vb6 sapere se un ocx è già registrato

Avatar
piter123 (Normal User)
Pro


Messaggi: 145
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 10:52
Venerdì, 20/05/2011
salve, come faccio a sapere tramite codice vb6 se un ocx è già regisrato e quindi gesistrarlo, grazie

PM
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 1:43
Sabato, 21/05/2011
Puoi provare ad usare CreateObject() intercettando l'errore

Dim obj As Object
On Error Resume Next
set obj = CreateObject(<nome.classeocx>;)
If obj is Nothing Then
    Debug.Print "Ocx non registrato"
End If

Per registrarlo, invece, potresti avere parecchi problemi, dipende dallo scenario (che non hai indicato) perchè il tentativo fallirà miseramente se eseguito su Windows Vista o Seven perchè occorrono permessi speciali (non basta essere amministratore) per farlo da programma.
Per cui se, come credo, distribuisci il tuo programma a terzi sappi a cosa vai incontro.

Oltretutto non è nemmeno corretto registrarlo (e nemmeno de-registralo) via codice perchè la registrazione di un componente ActiveX richiede anche che venga aggiornato un contatore che indica quante applicazioni utilizzano quel componente, come puoi verificare nel Registro di Windows in questa chiave:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs

Fermo restando quanto sopra, puoi usare

Registrare:
RegSvr32.exe <nomefileocx>

De-Registrare
RegSvr32.exe <nomefileocx> /u

Mi pare di aver visto su Planet Source Code un progetto sorgente di esempio.

Ciao

PM