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
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