PDA

Visualizza la versione completa : [VB6] Run-Time Error 429 ActiveX Component can't create object


Guide
28-04-2007, 21:23
Run-Time Error 429 ActiveX Component can't create object

L'errore si presenta quando è attiva una connessione internet

Quello che dovrebbe fare quando è attiva la connessione è il seguente:
-------------------------
Dim inet As Object
Dim b() As Byte

Const icByteArray = 1

Set inet = CreateObject("InetCtls.Inet")

b() = inet.OpenURL("http://www.sito.it/fileditesto.txt", icByteArray)

Text1.Text = StrConv(b, vbUnicode)

Set inet = Nothing
---------------
quindi...cosa puo essere che mi da errore nell'altro pc?

grazie



In riferimento al post
http://forum.html.it/forum/showthread.php?s=&threadid=1116211

oregon
28-04-2007, 21:33
Quindi il problema e' che manca (o non e' registrato) il componente MSINET.OCX

Guide
28-04-2007, 21:59
che significa...
che manca (o non e' registrato) il componente MSINET.OCX

manca e basta.....che significa (o non e' registrato) ? cosa deve essere registrato?

In ogni caso...cosa si puo fare per risolvere il problema?

(che tra l'altro non ho capito bene...vedi domanda sopra)

se puoi fammi capire....cosa mi suggerisci?

oregon
28-04-2007, 22:01
Beh ... non so come dirti meglio ...

Intanto, hai controllato se esiste il file MSINET.OCX in \Windows\System32 ?

Guide
28-04-2007, 22:06
non posso verificarlo...il pc sta in un altra citta...mi sono fatto dire per telefono l'errore.

Ma in ogni caso....chi o cosa dovrebbe istallare MSINET.OCX '
non è sufficiente il sistema operativo istallato....non è un file che si istalla tramite il sistema operativo?...oppure?

riguardo
che significa (o non e' registrato) ? cosa deve essere registrato?

c'entra qualcosa il sistema operativo regolarmente registrato?

provaci a farmi capire
grazie

p.s. in ogni caso esistono rimedi? (non so cosa chiederti...aiutami a capire il problema...)

oregon
28-04-2007, 22:13
E' un controllo che potrebbe non essere mai stato installato in quel PC.

Per installare un ocx (che praticamente e' l'ActiveX di cui all'errore ...) bisogna effettuare due operazioni:

1) copiare il file MSINET.OCX in \windows\system32

2) scrivere alcune informazioni nel registro di sistema (registrare l'activex) con il comando

regsvr32 \windows\system32\msinet.ocx

La registrazione del sistema operativo non c'entra nulla.

Inoltre, il controllo in questione e' soggetto a controllo della licenza, e su un PC in cui non e' installato VB, potrebbe dare quei problemi. Per questo motivo ti consiglio anche di scaricare da

http://support.microsoft.com/kb/194751/it

il file VB6Cli.exe ed eseguirlo sul PC dove hai l'errore.

Fatto questo, controlla se tutto e' a posto e ti fai risentire ...

Guide
29-04-2007, 00:55
Ti ringrazio...
da quanto hai scritto capisco però che tale intervento deve essere fatto su ogni pc dove girerà il programma...questo non è possibile farlo su ogni pc...quindi sono costretto ad eliminare la funzione....oppure trovare un altro sistema per leggere un file di testo residente su internet ad un indirizzo prestabilito e far si che il testo letto si inserisca, in maniera ordinata, in una textbox.

hai qualche suggerimento?

oregon
29-04-2007, 08:13
Dato che non vuoi usare l'ocx e dato che questo si basa sulle funzionalita' della DLL WININET, allora dovrai usare direttamente tali funzionalita' dal tuo programma, dichiarando le varie API che ti servono e usandole direttamente per leggere il file.

Ma il codice diventa piu' complesso e lungo (l'activex serviva proprio a ridurlo ...).

Pero', per questioni di tempo, non ti posso fornire tutto il codice ma ti indico qualche link da cui iniziare le tue ricerche e la scrittura di quello che serve ...

La API principale che dovrai usare e' la

InternetReadFile
http://msdn2.microsoft.com/en-us/library/aa385103.aspx

ma come vedi, questa ha la necessita' di usare la

InternetOpenUrl
http://msdn2.microsoft.com/en-us/library/aa385098.aspx

e qualche altra della DLL WinInet
http://msdn2.microsoft.com/en-us/library/aa385473.aspx

pieromont
30-04-2007, 23:06
con quale sistema operativo si verifica l'errore?

Loading