PDA

Visualizza versione completa : Wininet non funziona con IE7


MEGS
17-01-2007, 16.23.07
Salve a tutti,
dopo aver installato IE7 ho problemi con la connessione ad internet su programmi fatti con Visual Basic che prima con IE6 funzionavano regolarmente. Il problema che riscontro ora con la nuova versione di Internet Explore 7 è che non si connette proprio via FTP.
Qualcuno può aiutarmi a risolvere ?
Grazie

P8257 WebMaster
17-01-2007, 16.33.26
Il problema è dovuto ad un cambio nell'implementazione del gestore di default del protocollo, prima era internet explorer ed explorer, ora è soltanto explorer, qual'é il problema di preciso ?

timeout ?
errore di altro tipo?
errore di risoluzione dns?

MEGS
17-01-2007, 16.53.05
Il problema è dovuto ad un cambio nell'implementazione del gestore di default del protocollo, prima era internet explorer ed explorer, ora è soltanto explorer, qual'é il problema di preciso ?

timeout ?
errore di altro tipo?
errore di risoluzione dns?


Questa istruzione in VB mi restituisce sempre 0.

hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PROXY, txtProxy.Text,
vbNullString, 0)

e mi da questi valori di debug prima dell'esecuzione della stessa:

scuseragent="vb wininet"
INTERNET_OPEN_TYPE_PROXY =3
txtProxy.Text=""
vbNullString=""

P8257 WebMaster
17-01-2007, 17.09.28
Microsoft ha effettivamente cambiato quella libreria, prova ad aprire la risorsa web nella chiamata con il browser ie7, che risultato ottieni?

P8257 WebMaster
17-01-2007, 17.15.26
Ti consiglio inoltre di riferirti a questa pagina dell'msdn

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

MEGS
19-01-2007, 10.14.32
ma se metto il vecchio wininet.dll combino qualche guaio????

P8257 WebMaster
19-01-2007, 11.01.29
ma se metto il vecchio wininet.dll combino qualche guaio????

Si, perché è usata da un sacco di altri programmi, POTRESTI (e sottolineo potresti) tamponare rinominandola e inserendola nel packaging del tuo programma, ovviamente la dll va registrata nuovamente e devi cambiarne la dichiarazione, poi però devi controllare nel registro il suo CLSID e se sei fortunato potresti riuscire ad usarla

Aggiungo:
devi fare l'override di tutte le dichiarazioni delle api che usi in quella dll e sperare che funzioni

MEGS
19-01-2007, 11.12.21
Grazie di tutto. Ho risolto dopo aver visto la pagina di MSDN che mi hai proposto.
Ho cambiato INTERNET_OPEN_TYPE_PROXY con INTERNET_OPEN_TYPE_DIRECT.

P8257 WebMaster
19-01-2007, 11.24.52
Evidentemente è cambiata una policy interna di gestione dei loopback e dei proxy, stai attento alla retrocompatibilità piuttosto, se pensi che il tuo programma possa girare su sistemi aggiornati o meno la devi prevedere