Aggiungere un componente OCX/COM

giovedì 11 giugno 2009 - 11.11

Barabas Profilo | Junior Member

Salve a tutti,
sto provando a integrare un componente OCX/COM in una applicazione realizzata in VB.net con Visual Studio 2005 che gira su un PC con sistema operativo XP.
Purtroppo non esiste un controllo simile realizzato appositamente per .net, perciò devo usare per forza questo OCX anche se è unmanaged etc etc.
Ho seguito il tip di David De Giacomi (http://www.dotnethell.it/tips/WebBrowserWinForms.aspx) per la registrazione di un OCX diverso da quello che serve a me, comunque la procedura dovrebbe essere sempre la stessa.
Riesco ad aggiungere il componente alla casella degli strumenti ma quando provo a piazzarlo sulla form mi dà il seguente messaggio di errore:

"Impossibile usare il controllo ActiveX. Assicurarsi che sia registrato correttamente."

Cosa dovrei fare per essere sicuro della corretta registrazione?
Avete qualche consiglio da darmi?

grazie in anticipo
ciao
Barabas

R3GM4ST3R Profilo | Junior Member

Ciao, non ho capito se hai registrato manualmente il controllo...se così non fosse, esegui la seguente procedura
Mettiamo che il componente si chiama pippo.ocx e si trova in c:\windows\system32\
apri un CMD (da start->esegui)
e digita
>regsvr32 c:\windows\system32\pippo.ocx

Dopodichè tutto dovrebbe funzionare correttamente, se così non fosse, il problema è un altro.

Ciao!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

Barabas Profilo | Junior Member

prima cosa grazie della risposta.
spiego un po' meglio la situazione:

il componente l'ho scaricato da internet e ho eseguito il suo installer.
ho provato ad aggiungerlo al visual studio e non era proprio presente nell'elenco dei componenti com selezionabili.
allora ho provato a registrarlo manualmente usando il percorso dove l'avevo installato, tipo:

regsvr32 c:\cartellaOCX\pippo.ocx

ma mi diceva che non era possibile registrare...
allora ho copiato manualmente il file ocx in c:\windows\system32 e ho dato il comando

regsvr32 c:\windows\system32\pippo.ocx

dopodichè ho trovato il componente nell'elenco dei componenti aggiungibili al visual studio l'ho selezionato e me lo sono trovato nella casella degli strumenti.
Purtroppo però quando provo ad usarlo piazzandolo nella form ricevo l'errore
"Impossibile usare il controllo ActiveX. Assicurarsi che sia registrato correttamente."
Ho provato anche ad aggiungere l'ocx ai riferimenti ma non cambia niente...

ho provato anche a metterlo sulla form da codice, (senza trascinarlo) e me lo trovo pure nell'intellisense ma non riesco ad usarlo.

forse ho fatto casino quando l'ho registrato manualmente... vorrei riprovare tutto da capo ma non so come cancellare la registrazione fatta con regsvr32...

spero che possiate aiutarmi
grazie
ciao
Barabas

R3GM4ST3R Profilo | Junior Member

Di nulla!

Per deregistrarlo digitare

>regsvr32 /u c:\pippo.ocx

Che componente è?
Magari richiede una qualche licenza esterna o qualche altro file / dll che tu non hai installato nel tuo sistema...


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

Barabas Profilo | Junior Member

il componente è RS TrendX della Rockwell, si usa in ambito SCADA/automazione industriale per graficare l'andamento di variabili di processo in impianti industriali, è fatto apposta per essere integrato in applicazioni Visual Basic (ma non .NET) che nel settore sono ancora molto diffuse.
ho usato il suo installer quindi credo che qualsiasi cosa gli serva se la sia installata...

ora riprovo a farlo daccapo.
Barabas

Jeremy Profilo | Guru

Ciao
I Windows Form possono contenere solo controlli Windows Form che ereditano dalla classe Control.
Se ne hai bisogno, devi usare un tool che crea una classe wrapper che è possibile inserire nel WindowsForm.
Per ulteriori info:
http://msdn.microsoft.com/it-it/library/8ccdh774(VS.80).aspx

Facci sapere...
Ciao

Barabas Profilo | Junior Member

Ti ringrazio per il link certamente utile ma non credo che sia quello il problema, nel senso che il wrapping visual studio dovrebbe farlo in automatico creando un'apposita dll, che infatti io mi ritrovo pure, non è così?
Comunque ho controllato passo passo tutto il procedimento e sembra corretto, a questo punto l'unica possibilità è che ci siano problemi con licenze etc etc... in effetti non avrebbero dovuto esserci, ma alle volte, non si sa mai... in fin dei conti questo componente non era progettato per .net
Barabas

R3GM4ST3R Profilo | Junior Member

Ciao, un'altra cosa che mi viene in mente è che magari quel controllo ocx dipende da altri controlli esterni...
tipo mscomm per gestire la seriale o dio solo sa cos'altro...prova a googlare per capire i prerequisiti di quel componente...
al massimo prova ad installare i vb6 runtime library...

ciao!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5