Oppure

Loading
03/10/07 10:12
Ciao a tutti,
sono nuovo del forum. Leggendo i vari post ho visto che avete le competenze necessarie, spero, per potermi aiutare.
Ho un problema che non riesco a risolvere.
Praticamente ho sviluppato un programma Client/Server, ma che ha ancora bisogno di essere perfezionato, quindi devo effettuare varie modifiche.
Il mio problema è che sto cercando di sviluppare un programmino, un downloader. Lo so che esitono già dei downloader in questo sito, ma nessuno fa al caso mio.
Io vorrei caricare il programma compilato su un dominio a cui posso accedere tramite semplice URL (http:\xxxx.xx\XX\xxxxxx.exe)
Ora vorrei dare la possibilità al mio programma di scaricarsi il compilato da questo URL, ma solo nel caso in cui la propria data di creazione sia precedente a quella del compilato presente all'URL.
So che bisogna usare delle API, ma non ho idea di quale serva al mio bisogno. Vi prego, aiutatemi, per favore!:d

P.S. Avrei bisogno, se possibile del codice che mi permette di farlo e quale libreria importare.
Ultima modifica effettuata da 03/10/07 10:14
03/10/07 14:13
Nessuno può aiutarmi?? Vi prego!8-|8-|8-|8-|
04/10/07 12:05
P4p3r0g4
io avevo un problema simile ma al posto di guarare la versione del programma aveo creato un file txt in remoto e in locale col numero di versione maggiore.
se non coincidevano, riscaricava.
aaa
04/10/07 16:33
Si, infatti in questo momento ho usato questo metodo, anche se con una variante. Invece di creare un file di txt anche in locale, leggo la data di creazione del file EXE locale perchè ho notato che quando scarico la nuova versione, la data viene modificata con la data di download.
Non mi andava di scrivere altro codice per modificare il file di testo locale :D

Aspetto, cmq che qualcuno mi aiuti a risolvere il problema leggendo la data di creazione del file EXE remoto.
05/10/07 21:22
Allora ragazzi, anche se nessuno è riuscito a darmi una mano a parte P4p3r0g4, non è che me ne sono stato con le mani in mano ed ho cmq cercato di realizzare quello che volevo ... e ci sono riuscito.:k:
Come si dice!? Chi la dura la vince :asd:
Vi posto il codice perchè sono sicuro che a qualcuno interesserà. Basterà copiarlo e, de non ho dimenticato di scrivere qualcosa, mandarlo in esecuzione facendo le dovute modifiche.
Sono a disposizione per qualsiasi chiarimento, ammesso che sia in grado di farlo :D
    '  mettere i riferimenti a Microsoft Scripting Runtime (Progetto-->Riferimenti...)
    ' ed importare il componente Microsoft Internet Transfer Controls 6.0
    ' Inserire l'oggetto Inet su di una form, e copiare il codice nella sub Form_Load
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long

Dim msg, creazione As String

Private sub Form_Load()
    Dim filespec As String
    Dim fso As Scripting.FileSystemObject
    Dim erFile As Scripting.File
    Dim retVal As Integer
    
    Inet1.AccessType = icUseDefault
    Inet1.Protocol = icHTTP
    Inet1.RequestTimeout = 60
    Inet1.URL = "http://www.miodominio.net/dir/ProgrammaRemoto.exe"
    
    Inet1.Execute Inet1.URL, "GET"
    Do While Inet1.StillExecuting: DoEvents: Loop
    
    dimensione = Inet1.GetHeader("Content-length")
    creazione = Inet1.GetHeader("last-modified")
    creazione = Replace(Mid$(creazione, 6, 11), " ", "")
    ' @mese, restituisce il corrispettivo valore numerico del mese ottenuto
    ' perchè GetHeader restituisce la data nel formato 01 Jan 2000 
    ' {è un semplice Select case sui possibili mesi}
    '
    ' #Private Function mese(ByVal month As String) As String
    creazione = Mid$(creazione, 1, 2) & "/" & mese(Mid(creazione, 3, 3)) & "/" & Mid(creazione, 6, 9)
    creazione = DateValue(creazione)
    filespec = App.Path & "\ProgrammaLocale.exe"
    Set fso = CreateObject("Scripting.FileSystemObject")
    If (fso.FileExists(filespec)) Then
        Set erFile = fso.GetFile(filespec)
        msg = erFile.DateLastModified
        msg = Mid$(msg, 1, 10)
    Else
        MsgBox filespec & " non esiste.", vbCritical
        End
    End If    
    msg = DateValue(msg)
    If DateDiff("d", msg, creazione) > 0 Then
        retVal = URLDownloadToFile(0, "http://www.miodominio.net/dir/ProgrammaRemoto.exe", App.Path + "/ProgrammaLocale.exe", 0, 0)
        MsgBox "Programma aggiornato. Avvio dell'applicazione in corso."
    Else
        MsgBox "Non è necessario nessun aggiornamento. Avvio dell'applicazione in corso."
    End If
    Shell App.Path & "\ProgrammaLocale.exe"

    Inet1.Execute , "CLOSE"
    Do While Inet1.StillExecuting: DoEvents: Loop
End if


P.S.: Se fosse possibile a qualche moderatore, cambiare il titolo del post in qualcosa di + attinente, magari con Uploader non è facile trovarlo.:D:rotfl:
Ultima modifica effettuata da 05/10/07 21:25
06/10/07 12:55
P4p3r0g4
perchè non lo pubblichi come programma sul sito?
aaa
06/10/07 16:19
Postato originariamente da P4p3r0g4:

perchè non lo pubblichi come programma sul sito?


In che senso?
Come si fa? Non sono pratico di questo di forum.:-|
06/10/07 17:43
antometal
devi prima diventare membro così puoi caricare i tuoi prog sul sito e altro...
aaa