PDA

Visualizza versione completa : [VB6] Aggiornamento software via internet


Jamester
08-07-2009, 05.13.51
Rieccomi di nuovo :) Quest'oggi la mia domanda è la seguente: E' possibile in qualche modo implementare una funzione in VB6 che permetta a un command button di eseguire un codice che acceda a un sito internet e far controllare in qualche modo se esista una versione + aggiornata di un software (creato da me?) se si, in che modo e possibile e come farebbe a sapere che la versione su sito e' + aggiornata?

Franzo
08-07-2009, 08.39.33
Ciao,
crei una pagina web bianca, contenente solo il numero della versione del programma.

es.
<HTML>
<BODY>
2
</BODY>
</HTML>

con qualche riga di codice recuperi il testo che contiene la pagina web (in questo caso il numero 2), lo formatti come numero e lo confronti con la versione in locale.

Stessa cosa se vuoi gestire la versione software di tipo 1.1.1.1
si tratta solo di manipolare stringhe, il succo sta nell'aprire la pagina web da vb e recuperare il testo contenuto.

Jamester
08-07-2009, 08.44.02
A creare una pagina web sono capace in quanto webmaster ma non mi e' molto chiaro il codice che dovrei mettere in un commandbutton e come dire a VB "vai a vedere quella riga della pagina web e confrontala cn qualcos'altro. Tipo avevo pensato se fa un controllo di label dove ho scritto la versione in una delle mie form tra il mio programma e sto numero nella pagina web. Se il numero sul web e' MAGGIORE, allora scaricalo senno tipo msgbox "non c'e' nessun aggiornamento" questo e' quello che avrei in mente

Franzo
08-07-2009, 09.42.15
Per comodità nella pagina web scrivi solo il numero della versione,
Per come fare, dai un'occhiata al componente inet.

Jamester
08-07-2009, 09.59.58
Ho trovato questo codice su internet ma non ho capito la dinamica: La spiegazione dice quanto segue:

in una label ho messo la versione corrente e in una txt non visibile ho messo che leggeva il file txt. Poi ho messo un progressbar che aumenta e una volta arrivato a 100 verifica se il testo contenuti nella text e nella label sono uguali dice versione aggiornata altrimenti dice ci sono aggiornamenti disponibili.


Private Sub Form_Load()
Dim inet As Object
Dim b() As Byte

Const icByteArray = 1

Set inet = CreateObject("InetCtls.Inet")

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

Text1.Text = StrConv(b, vbUnicode)

Set inet = Nothing
End Sub

Private Sub Timer1_Timer()
If ProgBarXP1.Value = 100 Then
If Text1.Text = Form1.Label10.Caption Then
MsgBox "Versione Aggiornata"
Else
MsgBox "Nuovi aggiornamenti disponibili"
End If
Timer1.Enabled = False
Form2.Hide
Unload Me
Else
ProgBarXP1.Value = ProgBarXP1.Value + 1
End If
End Sub


Pero' in questo codice non capisco dove sta la funziona che controlla se all'interno di sto file txt c'e' un numero che viene paragonato alla label che sta sulla form. Noto la riga:


If Text1.Text = Form1.Label10.Caption Then


Pero' se entrambe sono oggetti che stanno sulla form, che senso ha?

Franzo
08-07-2009, 10.38.45
Se leggi attentamente, la text1 viene riempita con qualcosa...

Io ti ho consigliato di dare un'occhiata al componente intet, nel senso di studiarlo (almeno aprire la guida F1) e cercare di capire anche se non a fondo, le sue proprietà, i metodi, ecc. fare copia incolla di codice altrui non serve a niente, infatti non ti è chiaro nemmeno il codice che hai postato. Ricorda che è pericoloso eseguire codice di cui non capisci la sintassi.

Altro suggerimento,
quando devi risolvere un problema, impara a dividerlo in parti e risolverne una alla volta: in questo caso prima di tutto recupera il del testo presente in una pagina web, concentrati solamente in quello e lascia perdere la progress bar, il confronto di stringhe, il download, quelle cose verranno dopo.

Non voglio sembrare antipatico ma dare la soluzione pronta non avrebbe nessuna utilità, sia dal punto di vista della tua soddisfazione sia dell'apprendimento. Son sicuro che leggendo un paio di esempi in internet e leggendo la guida riesci a scrivere la routine in poco tempo.

LoryOne
08-07-2009, 10.44.39
Concordo in pieno con quanto dice Franzo (Y)

Spiegazione stringata:
Apre un link ad un file in formato .txt e riempie un array di bytes con il suo contenuto.
A questo punto trasforma l'array in una stringa e la confronta con un altra stringa per verificare la versione.
Il controllo timer gli serve solo quando deve far apparire la messagebox e controlla l'evento timer con timer.enabled

Jamester
08-07-2009, 10.51.51
Se leggi attentamente, la text1 viene riempita con qualcosa...

Io ti ho consigliato di dare un'occhiata al componente intet, nel senso di studiarlo (almeno aprire la guida F1) e cercare di capire anche se non a fondo, le sue proprietà, i metodi, ecc. fare copia incolla di codice altrui non serve a niente, infatti non ti è chiaro nemmeno il codice che hai postato. Ricorda che è pericoloso eseguire codice di cui non capisci la sintassi.

Altro suggerimento,
quando devi risolvere un problema, impara a dividerlo in parti e risolverne una alla volta: in questo caso prima di tutto recupera il del testo presente in una pagina web, concentrati solamente in quello e lascia perdere la progress bar, il confronto di stringhe, il download, quelle cose verranno dopo.

Non voglio sembrare antipatico ma dare la soluzione pronta non avrebbe nessuna utilità, sia dal punto di vista della tua soddisfazione sia dell'apprendimento. Son sicuro che leggendo un paio di esempi in internet e leggendo la guida riesci a scrivere la routine in poco tempo.

Sul mio manuale per l'ennesima volta pare che sia scritto sotto un altra dicitura mi sono visto tt l'index ma nn c'e' sto INTET. Quanto alla guida, dissi gia agli inizi che nn possiedo le MSDN quindi nn posso usare nessuna guida. Inoltre nel formato cartaceo nn lo trovo

LoryOne
08-07-2009, 11.01.23
Jamester ... Tu devi studiare parecchio prima di poter scrivere codice.
Trattasi di controllo aggiuntivo.
Dammi retta, accantona (accantona, non abbandona) quello che ti sei proposto, studia bene, fai pratica con script molto semplici.
Impara le strutture dati, funzioni, dichiarazioni, eventi, proprietà e poi fai molta, molta pratica.
E' un consiglio ;)

Jamester
08-07-2009, 11.05.41
Jamester ... Tu devi studiare parecchio prima di poter scrivere codice.
Trattasi di controllo aggiuntivo.
Dammi retta, accantona (accantona, non abbandona) quello che ti sei proposto, studia bene, fai pratica con script molto semplici.
Impara le strutture dati, funzioni, dichiarazioni, eventi, proprietà e poi fai molta, molta pratica.
E' un consiglio ;)

Anche in HTML ho fatto cosi e ho ottenuto grandi risultati. Puoi studiare quanta teoria vuoi ma se nn la applichi e' tempo perso. Ci vuole sempre un qualcuno che si sieda vicino e ti insegni. Io ragiono cosi: Mi si scrive il codice e io cerco di capirlo. Se ho dei dubbi chiedo delucidazioni ma partire senza codice per me non e' cosa. Io apprezzo il tempo che state investendo cmq per rispondermi pero' vi costa cosi' tanto spendere 1 minuto in + per fare un esempio FUNZIONANTE pratico?

Franzo
08-07-2009, 11.27.00
Se sei abituato che la gente scriva il codice per te e poi tu cerchi di capirlo scusami tanto ma questo non è programmare.
MSDN la puoi scaricare gratuitamente...

Jamester
08-07-2009, 11.43.27
Se a scuola dovessi imparare una qualunque cosa, potresti impararla se non la leggi da qualche parte prima? stesso discorso me cn il codice. Io nn imparo se nn vedo un codice e' come leggere senza occhi e solo cn le orecchie che sentono la teoria

Inoltre a me importa del risultato e nn il come lo si e' ottenuto. E' una cosa che a momento faccio per hobby xche questo mi serve a momento quindi se vi sto stufando e' un conto ma nn mi sembra di stare chiedendo la luna e poi xche' devo ribadire da giorni la stessa cosa e mi si risponde picche? Scusate e' o no un forum di aiuto? o ho letto male?

Sto compiendo un grande sforzo per non arrabbiarmi credetemi perchè se il forum fosse deserto capirei ok nn c'e' nessuno pero' mi sento un attimino snobbato e preso in giro e st'argomento che a parer mio si sarebbe potuto risolvere con un botta e risposta secco, si sta protraendo per le lunghe ed e' una cosa che non sopporto :anger:

Franzo
08-07-2009, 11.48.56
il rapporto di difficoltà tra HTML e VB è 1/infinito !
Ribadisco, scrivi qualcosa di tuo poi se ti incasini postalo ed io, LoryOne, e gli altri utenti del forum saremo più che disponibili ad aiutarti

LoryOne
08-07-2009, 11.52.30
No Jamester, tu non studi neanche se ti postiamo il codice.
Tu vuoi la pappa pronta, ma la pappa te la preparano gli altri, almeno sii sincero.
Hai parlato di HTML ... bene, anche dietro all' HTML c'è tanta teoria e poichè tu asserisci di essere webmaster, ben saprai che un sito web è frutto della fantasia del suo creatore, una sorta di carta d' identità, qualcosa di personale, espressione di creatività.
Lo stesso dicasi per qualsiasi applicativo: E' tuo, noi ci si limita a fornirti spunti, idee, e fornirti spiegazioni a problemi per i quali non hai trovato soluzione.

Franzo
08-07-2009, 11.54.31
il bello è che in questo post non solo hai ricevuto consigli preziosi ma c'è anche la soluzione al tuo quesito!

Prima di tutto impara a leggere bene! ti ho detto che MSDN è gratuita perchè non la scarichi al posto di replicare?

io passo e chiudo

Jamester
08-07-2009, 11.57.29
No Jamester, tu non studi neanche se ti postiamo il codice.
Tu vuoi la pappa pronta, ma la pappa te la preparano gli altri, almeno sii sincero.
Hai parlato di HTML ... bene, anche dietro all' HTML c'è tanta teoria e poichè tu asserisci di essere webmaster, ben saprai che un sito web è frutto della fantasia del suo creatore, una sorta di carta d' identità, qualcosa di personale, espressione di creatività.
Lo stesso dicasi per qualsiasi applicativo: E' tuo, noi ci si limita a fornirti spunti, idee, e fornirti spiegazioni a problemi per i quali non hai trovato soluzione.

Beh fino a prova contraria i miei siti graficamente e strutturalmente sono sempre piaciuti a chi li ha visti. Io cn l'HTML nn ho letto un solo libro e ho fatto tutto imparando su codice e smanettandoci sopra tanto prima o poi doveva funzionare ma almeno avevo una base. La grafica la faccio io i contenuti e la struttura pure il codice in base alla funzione lo uso o lo modifico all'occorrenza. Quanto a fantasia ne ho da vendere su questo non ci piove.

Per quanto riguarda il VB6, si voglio la pappa pronta nn si era capito? ma il fatto di voler la pappa pronta non vuol dire che poi quella pappa nn la scomponga per capire.

Se io dovevo essere sincero a dirlo, voi dovreste essere altrettando sinceri nel dire: NO NON TI AIUTIAMO VEDITELA DA SOLO piuttosto che portare avanti una discussione o per meglio dire LE DISCUSSIONI per giorni :anger:

LoryOne
08-07-2009, 14.33.40
Esatto: Veditela da solo e fai buon uso dei consigli che ti sono stati forniti.
Tu chiedi una soluzione alla cieca. Non si capisce come hai strutturato il tuo programma, non si capisce se tu abbia o meno una minima preparazione ad affrontare l'argomento programmazione che è distante anni luce da buttare giù righe e righe di HTML per dar vita a pagine statiche in assenza di interattività con l'utente.
Dici che hai imparato da solo leggendo l'HTML: Bravo, ma ci vuole parecchio di più a scrivere un applicativo in VB, ambiente di sviluppo fin troppo facilitato.
L'approccio che hai tenuto fin'ora e che ti è stato utile per imparare l'HTML non è confacente a quello che è necessario per cominciare a programmare nel vero senso della parola, anche solo se in VB.
Il fatto che tu ti definisca un principiante non ti esime dallo studiare la guida ed a sperimentare sulla tastiera, tutt altro.
Il fatto che tu lo faccia per diletto non ti esime dallo studiare la guida ed a sperimentare sulla tastiera, tutt altro.
Il fatto che tu chieda la pappa pronta, ti spinge a dover chiedere sempre ogni volta che hai fame e questo non è un insegnamento o l'aiuto che qui fin'ora hai ottenuto.

Franzo
08-07-2009, 14.45.37
non volevo dirlo ma l'html lo si impara in 3 giorni, non di più