Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB6] InternetOpenUrl da questa mezzanotte non mi funziona più

    ciao a tutti, è successo a mezzanotte in punto . . stanotte
    vediamo se avete qualche idea di cosa è successo e come si può rimediare

    Ho fatto un banale programmino in Vb6 che legge le pagine di facebook di alcuni comici,
    vip, politici . . sportivi famosi e prende il numero dei 'mi piace' ad intervalli di tempo
    settabili da programma e poi mi disegna un grafico per sapere dove vanno i gusti del mondo
    . . chi piace di più e chi di meno.


    ecco l'esempio di una pagina che il mio codice va a leggere, e filtrando il codice html
    mi va a trovare il valore numerico dei 'mi piace' aggiornato in quel momento.

    https://www.facebook.com/pages/Mauri...57148&sk=likes


    nel mio programma da oltre 1 anno usando questa subroutine tutto ha funzionato bene ma da stanotte
    non funziona più


    Private Const IF_NO_CACHE_WRITE = &H4000000
    Private Const BUFFER_LEN = 256


    Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
    Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
    Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
    Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer



    ' --------------------------


    Sub GetURLSource(sUrl As String, fileSulPC As String)


    Dim sBuffer As String * BUFFER_LEN
    Dim sData As String
    Dim lInternet As Long
    Dim lSession As Long
    Dim lReturn As Long

    DoEvents

    'prendo l'handle della connessione corrente
    lSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)

    'prendo l'handle dell'URL
    If lSession Then lInternet = InternetOpenUrl(lSession, sUrl, vbNullString, 0, IF_NO_CACHE_WRITE, 0)

    'se c'è l'handle dell'URL passo alla lettura della pagina
    If lInternet Then
    Call InternetReadFile(lInternet, sBuffer, BUFFER_LEN, lReturn)
    sData = sBuffer
    Do While lReturn <> 0
    Call InternetReadFile(lInternet, sBuffer, BUFFER_LEN, lReturn)
    sData = sData + Mid$(sBuffer, 1, lReturn)
    Loop
    End If

    Call InternetCloseHandle(lInternet) 'chiudo l'URL

    Call InternetCloseHandle(lSession)

    Open fileSulPC For Binary As #9
    Put #9, , sData
    Close #9
    End Sub


    in particolare è questo rigo che mi crea problemi:


    If lSession Then lInternet = InternetOpenUrl(lSession, sUrl, vbNullString, 0, IF_NO_CACHE_WRITE, 0)


    pur avendo un handle (lsession) valido e maggiore di ZERO . . il valore ritornato
    da lInternet è SEMPRE ZERO se la sUrl è una pagina di facebook (tipo quella di Crozza indicata prima) . .


    mentre invece se metto una pagina normale es. http://www.libero.it . . riesco ancora a leggerela
    correttamente.


    Sarà mica qualche tipo di protezione attivata stanotte da facebook sulle pagine https://
    (è solo una mia idea) . . come potrei risolvere restando in Vb6?


    . . grazie per gli eventuali consigli

  2. #2
    se non è possibile riparare . . in alternativa . . come potrei prendere TUTTO il codice html della pagina di facebook che ho indicato nell'esempio ? . . ho provato a sostituirla con questa funzione . . che prima faceva il suo dovere e adesso non più

    Function Url2Html(indirizzo As String, controlloINET As Inet) As String 'Stop
    On Error Resume Next
    Dim html As String
    Dim b() As Byte
    b() = controlloINET.OpenURL(indirizzo, 1)
    html = ""
    For i = 0 To UBound(b) - 1
    html = html + Chr(b(i))
    Next
    Url2Html = html
    Exit Function
    End Function

    ps. il componente Ms Internet Transfer Control 6.0 è nel progetto e Inet1 è nel form
    Ultima modifica di lucia.rocca; 15-10-2014 a 13:30

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    ma invece di open url
    hai mai provato ad aprire explorer e fargli aprire la tua pagina? con shell (io usavo questa)

    poi se è da mezzanotteche nonti funziona sarà successo qualcosa...riavvia (classico metodo)
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    ma invece di open url
    hai mai provato ad aprire explorer e fargli aprire la tua pagina? con shell (io usavo questa)

    poi se è da mezzanotteche nonti funziona sarà successo qualcosa...riavvia (classico metodo)
    ti ringrazio per la risposta . . ma il mio programma si è bloccato con un RUNTIME ERROR a mezzanotte . . quindi visto che anche rilanciando l'EXE il problema si ripresentava . . ho spento tutto.

    Stamattina alle 8 ho riacceso il pc e ci ho riprovato ed ho capito la riga del codice dove si continuava a bloccare ed ho deciso di rivolgermi agli esperti.

    Usando la Shell . . avvio l'explorer e vedo sul video la pagina di facebook in oggetto . . ok . . ma il numero come lo prendo/memorizzo in automatico? . . infatti non devo vederla io sullo schermo . . mi serve solo estrapolare quel numero in background e memorizzarlo in un file in automatico . . non mi interessa vedere continuamente le pagine di facebook aprirsi sotto il mio naso . . deve esser un lavoro oscuro di continua lettura/aggiornamento di questi dati.
    La mia EXE prima leggeva ed aggiornava una pagina ogni 5 secondi . . quindi diverse centinaia di pagine all'ora . . così funzionava da una anno a questa parte.

    Si può fare tutto questo con la shell . . la shell mi permette di prendere tutto il codice html della pagina senza farmela vedere a video? . . ok . . allora andrebbe bene . . ma mi servirebbe un esempio per poter fare delle prove
    Ultima modifica di lucia.rocca; 15-10-2014 a 14:44

  5. #5
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    qui c'è scritto come utilizzare la shell ed ottenere l'handle relativo
    http://www.vb-helper.com/howto_shell_get_hwnd.html
    oppure qui
    http://support.microsoft.com/kb/242308


    naturalmente sto pensando a qalche aggironamento che hai ricevuto, insomma...sai la sicurezza
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  6. #6
    su questo pc dove girava il programma che leggeva i 'mi piace ' di facebbok c'è windows Xp con gli aggiornamenti disattivati da almeno 2 anni! . . e fermo ad Explorer 6.0 che le pagine di facebook non me le apre nemmeno . . Invece con Chrome e Mozilla nessun problema. Ok grazie per i links (il secondo del sito microsoft mi da pagina non disponibile) . . vediamo se riesco ad adattare quel codice alle mie esigenze . . certo che prima mi bastavano 10 righe per fare tutto ore ne devo inserire 100 per sperare di fare la stessa cosa . . mah

  7. #7
    Prima di provare cose a caso io cercherei di capire cosa si è rotto... Cosa restituisce la GetLastError subito dopo la chiamata a InternetOpenUrl?
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Prima di provare cose a caso io cercherei di capire cosa si è rotto... Cosa restituisce la GetLastError subito dopo la chiamata a InternetOpenUrl?
    - RISOLTO -

    Se riuscivo a prendere i codici html di siti comuni come www.libero.it, www.google.it, www.html.it . . mi sembrava incredibile che non riuscissi a fare lo stesso con www.facebook.com e le sue pagine 'derivate' . . e questa improvvisa anomalia in una procedura che funzionava da oltre un anno mi meravigliava/innervosiva.
    Poi il blocco improvviso alla mezzanotte di un giorno in cui non avevo scaricato/installato nulla di sospetto . . bhè questo mi faceva impazzire.

    Ma mi è bastato fare un semplice test appena ho avuto sotto mano un pc con le stesse caratteristiche e lo stesso sistema operativo.
    Ho copiato il mio programmino sull'altro pc e tutto funziona perfettamente . . quindi . . doveva trattarsi sicuramente di qualche virus/ spyware . . che si è attivato ad orologeria sul mio pc.

    Perciò ora credo di aver capito cosa si è rotto . . mi sarebbe piaciuto indagare per trovare il malware colpevole e farvi un rapporto dettagliato . . ma l'aggiornamento dei miei dati non poteva attendere oltre quindi ho ripristinato da zero sull'hard disk una vecchia immagine del sistema operativo/+softwaresvari . . e tutto si è risolto.

    Un minuscolo feedback su questa discussione forse riusciamo comunque a cavarlo fuori . . se a qualcuno capitasse come è successo a me di avere dei sospetti su InternetOpenUrl . . prima di perdere tempo e trovare procedure alternative . . meglio verificare la situazione 'virale' del proprio pc . . grazie a tutti per l'attenzione e per i consigli . . ciao
    Ultima modifica di lucia.rocca; 16-10-2014 a 10:22 Motivo: errori grammaticali

  9. #9
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Prima di provare cose a caso io cercherei di capire cosa si è rotto... Cosa restituisce la GetLastError subito dopo la chiamata a InternetOpenUrl?
    - RISOLTO -

    Se riesco a prendere i codici html di siti comuni come www.libero.it, www.google.it, www.html.it . . mi sembrava strano che non riuscissi a fa e lo stesso con www.facebook.com e le sue 'derivate' . . e questa improvvisa anomalia in una procedura che funzionava da oltre un anno mi aveva meravigliato.
    Poi il blocco improvviso alla mezzanotte di un giorno in cui non avevo scaricato/installato nulla di sospetti . . bhè questo mi faceva impazzire.

    Ma mi è bastato fare un semplice test appena ho avuto sotto mano un pc con le stesse caratteristiche e lo stesso sistema operativo.
    Ho copiato il mio programmino sull'altro pc e funziona perfettamente . . quindi . . poteva trattarsi sicuramente di qualche virus/ spyware . . che si è attivato ad orologeria sul mio pc.

    Perciò ora credo di aver capito cosa si è rotto . . mi sarebbe piaciuto indagare per trovare il malware colpevole e farvi un rapporto dettagliato . . ma l'aggiornamento dei miei dati non poteva attendere oltre quindi ho ripristinato una vecchia immagine del sistema operativo e tutto si è risolto.

    Un minuscolo feedback su questa discussione forse riusciamo comunque a cavarlo fuori . . se a qualcuno capitasse come è successo a me di avere dei sospetti su InternetOpenUrl . . prima di perdere tempo e trovare procedure alternative . . meglio verificare la situazione 'virale' del proprio pc . . grazie a tutti per l'attenzione e per i consigli . . ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.