Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Mini Browser / Mini Messenger

    Salve sono un programmatore php e chiedo aiuto a voi per un idea
    che ho da giorni, un idea che ha l'obiettivo di fondere i concetti base di
    php e Ajax con applicazioni Desktop.
    Vorrei creare un applicazione desktop che si avvii in automatico e si
    colleghi ad un server web, in particolare ad una pagina php che restituisce il
    risultato di diverse query. L'applicazione dovrebbe essere in grado di interpretare
    i risultati e di avvisare l'utente.
    L'idea base sarebbe di un programma che effettua un continuo polling in background
    verso una pagina php di un forum che restituisce 1 o 0 nel caso ci siano o meno
    nuovi post dalla data della sua ultima visita.
    Se si, l'utente deve essere avvertito(popup/alert/sendbox...) e invitato a visitare la
    pagina in questione perchè sono presenti nuovi messaggi.
    Estetica minima, come un icona attiva nell'area notifiche di win a fianco dell'orologio
    con le funzioni connetti, disconnetti e imposta url pagina.

    Considerate il fatto che di vb conosco veramente poco.
    Credete sia una cosa fattibile ?
    Potete consigliarmi manuali, tutorial, esempi pratici, sorgenti e materiale di qualsiasi
    tipo che mi possano servire per questa realizzazione?
    ovviamente qualcosa di mirato...il manuale di vb ce lho gia
    Non saprei dire se si tratta di qualcosa di facile o di difficile...spero nella buona volontà di qualcuno di voi nel seguirmi passo passo nel caso fosse una realizzazione poco complessa.
    Saluti a tutti...

  2. #2
    Per il download della pagina ti basta usare la classe WebClient, per l'icona di notifica la classe NotifyIcon.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ho creato il form e inserito al suo interno un WebBrowser: è corretto fin qui ??
    Non sto capendo 2 cose:

    - Una volta connesso alla pagina del server vorrei che la richiesta si ripetesse
    tipo ogni minuto in modo da sondare la pagina per segnalare eventuali modifiche

    - Vorrei interpretare la risposta restituita dalla pagina del server e avvisare l'utente
    con un messaggio

    per adesso il mio codice è questo
    Private Sub Connetti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Connetti.Click
    MsgBox("Tentativo di Connessione...")
    Try
    WebBrowser1.Dock = DockStyle.Fill
    WebBrowser1.Navigate("http://www.myserverpage.it")
    Catch ex As Exception
    MessageBox.Show("Access Failed" & vbCrLf & ex.Message)
    End Try
    End Sub

  4. #4
    Usa CODE per i codici da inserire.
    Inserisci al tuo progetto un timer che s'avvia alla prima volta che il documento viene caricato. Imposta l'intervallo del timer a 60000 (= 1 minuto) e all'evento tick, scrivi:
    codice:
    TuoWebBrowser.Refresh
    Per avvisare l'utente con un messaggio ogni volta che il documento viene caricato, in fondo al codice dell'evento DocumentCompleted del WebBrowser e in fondo al codice dell'evento tick del timer, inserisci il codice per una msgbox.
    Spero d'esserti stato d'aiuto.
    ciao
    Iscrivetevi su:
    www.studentsmeeting.forumitalian.com!! E' gratis e utile!
    C'è anche la sezione "compiti"!!!!!!!!!

  5. #5
    1000grazie...ci provo subito !!

    In realtà per quanto riguarda la messagebox l'obiettivo è leggermente differente...
    Dopo la connessione la mia applicazione dovrebbe esser chiusa a icona
    e starsene buona buona nella traybar, e sondare ogni minuto un pagina web
    in background. La pagina nella sua versione base resituisce 0 o 1 in base
    al fatto che ci siano stati o meno nuovi messaggi.
    L'applicazione dovrebbe interpretare ogni minuto questo risultato e se il risultato
    è 1 avvisa l'utente con una msgbox.
    Il mio problema ora è interpretare il risultato della pagina web.

  6. #6
    puoi applicare un secondo webbrowser invisibile dove aggiorni il documento ogni 60 secondi con il timer. Quindi usi il primo webbrowser per la prima volta che il documento è stato aperto, il secondo, lo usi ogni minuto. inserisci questo codice al completamento del documento del secondo webbrowser:
    codice:
           Dim a As String = WebBrowser1.StatusText
            Dim b As String = WebBrowser2.StatusText
            If a = b Then
                Else
                MsgBox("E' diverso")
                WebBrowser1.url=WebBrowser2.url
            End If
    quindi quando trova una differenza nel testo nel secondo webbrowser, dal primo, avvisa dicendo che il testo è diverso e aggiorna il primo webbrowser. Al prossimo tick del timer, si ricontrolla che il teso di webbrowser2 sia uguale col primo. se è diverso, riaggiorna e avvisa, altrimenti, rimane tutto com'è...e così via...
    Iscrivetevi su:
    www.studentsmeeting.forumitalian.com!! E' gratis e utile!
    C'è anche la sezione "compiti"!!!!!!!!!

  7. #7
    Ribadisco, usa la classe WebClient se devi solo vedere se una pagina restituisce 0 o 1.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Grazie MItaly infatti ero partito con quell'idea, ma gia che ci sto
    utilizzo WebBrowser che mi offre anche la possibilità di vedere in tempo reale
    le modifiche, non solo di notificarle all'utente.
    Ho provato con i tuoi suggerimenti ziobill però cè qualcosina che non va...
    dovrebbe trattarsi dello StatusText, infatti nonostante cambi il contenuto
    della pagina mi restituisce StatusText uguali. Questo il codice
    codice:
        
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick         
    
             WebBrowser2.Refresh()
             Dim a As String = WebBrowser1.StatusText
             Dim b As String = WebBrowser2.StatusText
             If a = b Then
             Else
                 MsgBox("E' diverso")
                 WebBrowser1.Navigate("www.myserverpage.it")
             End If     
     End Sub
    Inizializzo i tutto sull' onclick della voce Connetti in questo modo

    codice:
        
    Private Sub Connetti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Connetti.Click
             MsgBox("Tentativo di Connessione...")
             Try
                WebBrowser1.Dock = DockStyle.Fill
                WebBrowser1.Navigate("www.myserverpage.it")
                 WebBrowser2.Dock = DockStyle.Fill
                 WebBrowser2.Navigate("www.myserverpage.it")
              Catch ex As Exception
                 MessageBox.Show("Access Failed" & vbCrLf & ex.Message)
             End Try     
    End Sub

  9. #9
    Okk okk Ho risolto da solo utilizzando i DocumentText dei due
    BrowserWeb... ora l'applicazione sembra girare discretamente.
    Ho ancora due interrogativi:
    1. ho impostato la riduzione a icona a False in modo da poter visualizzare
    solo una piccola icona nella tray e infatti non viene creata una scheda nella
    barra delle applicazioni, tuttavia viene creato uno scomodo ridimensionamento
    della finestra nell'angolo inferiore sinistro dello schermo(sopra Start) che contiene
    solo la barra del titolo e i controlli di chiusura/ridimensionamento...come faccio ad
    evitare che si visualizzi questa piccola finestra ? Mi basta solo l'icona nella tray

    2. Vorrei permettere all'utente di impostare il link di riferimento alla pagina server...
    vorrei che questa impostazione rimanga memorizzata nell'applicazione dell'utente
    senza doverlo costringere a digitarlo ogni volta...oppure posso elencare io i link a
    disposizione e l'utente deve selezionarne uno di default che partirà automaticamente
    ogni volta che si clicca su connetti...anche qui le scelte dovranno rimanere memorizzate.
    (sono proprio novello sulla parte della memorizzazione di parametri ringrazio
    anticipatamente chi saprà illuminarmi..)

  10. #10
    1. ti è sufficiente impedire la chiusura del programma scrivendo
    codice:
     e.cancel = false
    poi all'evento "FormClosing" scrivi
    codice:
     Me.Hide
    e basta, così il programma rimane in esecuzione.

    2. a)se vuoi che l'URL sia sempre lo stesso, basta che imposti dalla finestra delle proprietà del WebBrowser l'URL da te desiderato.
    b)se vuoi la scelta di più link, basta che salvi in un file txt gli URL e poi li carichi all'evento che ti serve ad esempio in una listbox...ti basta usare questo codice:
    codice:
    Dim a as New IO.StreamReader([percorso AS STRING])
    Do Until a.EndOfStream
    listbox1.items.add(a.ReadLine)
    Loop
    a.close()
    Carica ogni riga del txt e la inserisce in una listbox nel quale ogni item corrisponde a un link.
    Iscrivetevi su:
    www.studentsmeeting.forumitalian.com!! E' gratis e utile!
    C'è anche la sezione "compiti"!!!!!!!!!

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.