Oppure

Loading
20/05/11 8:52
piter123
salve, come faccio a sapere tramite codice vb6 se un ocx è già regisrato e quindi gesistrarlo, grazie
aaa
20/05/11 23:43
gibra
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
aaa