none
Code en VB pour accéder à des fichiers stockés sur Dropbox.com RRS feed

  • Question

  • Bonjour j'ai mis au point un code dans un Forms pour Updater mes programmes.

    J'utilise le site de stockage de fichier en ligne Dropbox comme lien pour rechercher les mises à jour.

    Voici mon problème :

    les liens d'accès aux fichiers ne fonctionnent plus et ne donne une erreur "System.Net.Execption" lorsque le debug mon programme.

    Je dis ne fonctionnent plus car au 1er lancement du programme il y a 2 jours,tous était nikel.

    Je n'y comprend rien! 

    Voici mon code avec les liens vers Dropbox :

    Imports System.Net

    Public Class Form1

        Dim VersionActuelle As String = "1.0.0.0"

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

            CheckUpdates()

        End Sub

        Sub CheckUpdates()

            Dim MAJ As New WebClient

            Dim DerniereVersion As String = MAJ.DownloadString("https://dl.dropbox.com/s/fjj479sloed0nkk/Version.txt")

            If VersionActuelle = DerniereVersion Then

                MsgBox("Vous exécuter la version la plus récente de ce logiciel")

            Else

                MsgBox("Une version plus récente de ce logiciel est disponible" & vbNewLine & "Version disponible : " & DerniereVersion, vbOKOnly + MsgBoxStyle.Information, "Attention")

                Dim MAJ2 As New WebClient

                Dim DownloadLink As String = MAJ2.DownloadString("https://dl.dropbox.com/s/phkup6lbllmcqd5/Download.txt")

                Process.Start(DownloadLink)

            End If

        End Sub

    End Class

    lundi 11 mai 2015 03:37

Réponses

  • Bonsoir,

    j'ai la version gratuit jusqu’à 2 GO et Visual Basic Prenuim(Microsoft Visual Basic 2010 express) <= si vous avez cet version je peux vous donner la clé gratuitement.

    j'ai essayer votre code depuis de début de votre probléme, un peu améliorer.

    voici en image :

    ajoute dans Form1 un  richtextbox.text et recopie le code(même les liens) dit si vous avez toujours le même erreur :

    Imports System.Net
    Imports System.IO
    
    Public Class Form1
        Dim VersionActuelle As String = Application.ProductVersion
        Dim MAJ As New WebClient
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Me.CheckUpdates()
        End Sub
    
        Sub CheckUpdates()
    
            Dim DerniereVersion As String = MAJ.DownloadString("http://www.dropbox.com/s/1yojtex6anw46ea/Version.txt?dl=1")
    
            If VersionActuelle >= DerniereVersion Then
    
                MsgBox("Vous exécuter la version la plus récente de ce logiciel")
    
            Else
                MsgBox("Une version plus récente de ce logiciel est disponible" & vbNewLine & "Version disponible : " & DerniereVersion, vbOKOnly + MsgBoxStyle.Information, "Attention")
                Dim file As StreamReader = New StreamReader(MAJ.OpenRead("http://www.dropbox.com/s/1yojtex6anw46ea/Version.txt?dl=1")) '?d1 = 0 par 1 pour Forcer afficher le fichier txt
                RichTextBox1.Text = file.ReadToEnd
                file.Close()
            End If
        End Sub
    End Class

    je l'ai essayer avec plusieurs lien, j'ai pas de message d'erreur comme vous avez dit mais pour être sur que votre lien est il bon ? essayer ce code avec votre lien :

    Imports System.IO
    
    Dim MAJ As New WebClient
    
    
    Dim file As StreamReader = New StreamReader(MAJ.OpenRead("votre lien a vous")) 
                RichTextBox1.Text = file.ReadToEnd
                file.Close()
    
    
    Pour voir si il s'afficher la version dans richtextbox1.text = 1.0.0.1 <=exemple

    cordialement,

    Zorro591,

    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    vendredi 15 mai 2015 21:13
  • Bonjour,

    le lien que vous m'avez donner n'ai pas bon.

    voici en image comment partager le lien :

    Maintenant à vous de créer un lien Dropbox à la fin de votre lien remplacer version.txt?dl=0 par version.txt?dl=1 pour afficher la version .

    Cordialement,

    vendredi 24 juillet 2015 15:10

Toutes les réponses

  • Bonjour,

    pourquoi essayer pas ceci :

    Imports System.IO
    Imports System.Net
    
    Dim Response as HttpWebResponse = Nothing
    Dim Sr As StreamReader = Nothing
    
    Try
                Dim request As HttpWebRequest = CType(WebRequest.Create("https://www.dropbox.com/s/ha8wx7hcarkb9u3/version.txt"), HttpWebRequest)
                Response = CType(request.GetResponse, HttpWebResponse)
                Sr = New StreamReader(Response.GetResponseStream)
                If sr.ReadToEnd <> Me.ProductVersion Then
                    Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\setup.exe"
                    If Dir(path) <> "" Then
                        Kill(path)
                    End If
                    Dim WebClient As New System.Net.WebClient
                    WebClient.DownloadFile("http://dl.dropbox.com/u/25627637/setup.exe", path) ' Ne pas oublier de remplacer le lien
                    Process.Start(path)
                    Application.Exit()
                Else
                    MsgBox("Le logiciel est à jour !", MsgBoxStyle.Information)
                End If
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical)
            Finally
                If Not (response Is Nothing) Then
                    response.Close()
                End If
                If Not (sr Is Nothing) Then
                    sr.Close()
                End If
            End Try
    cordialement,

    lundi 11 mai 2015 06:10
  • Bonjour,

    Pouvons-nous avoir des détails sur l'erreur System.Net.Exception ?

    La cause pouvant venir de plusieurs facteurs différents, le message d'erreur nous aidera à trouver la solution rapidement.

    Cordialement


    N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Un problème mal expliqué amène à une solution partielle. Contact

    lundi 11 mai 2015 10:26
  • Merci pour ce code qui fonctionne bien , puisqu'il accède au site Dropbox mais me renvois un message d'erreur au lieu de m'indiquer si il y a une update ou non.

    Voici le code erreur :

    460 (restricted)

    comme si le site était protégé...

    mercredi 13 mai 2015 08:25
  • Je vous joint des captures d'écran du détail de l'erreur si cela peu aider
    mercredi 13 mai 2015 10:40
  • et la derniere
    mercredi 13 mai 2015 10:43
  • Bonjour,

    Voici mon nouveau code , il fonctionne je l'ai déjà tester:

    Imports System.IO
    Imports System.Net
    Public Class Form1
        
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            CheckForUpdates()
        End Sub
    
        Private Sub CheckForUpdates()
            Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("https://www.dropbox.com/s/sp797286xh191f2/Version.txt?dl=0")
            Dim response As System.Net.HttpWebResponse = request.GetResponse()
            Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())
            Dim newestversion As String = sr.ReadToEnd()
            Dim currentversion As String = "1.0.0.0"
            If newestversion.Contains(currentversion) Then
                Label1.Text = "Aucune nouvelle mise à jour"
                Button1.Enabled = False
    
            Else
    
                Label1.Text = "Une mise à jour est disponible"
                Button1.Enabled = True
                System.Diagnostics.Process.Start("https://www.dropbox.com/s/7lpnp323rlvs7zk/Udpate%20dropbox.com.exe?dl=0")
            End If
    
        End Sub
    End Class

    cordialement,

    jeudi 14 mai 2015 10:24
  • Merci pour le code,je le test et vous tient au courant si cela fonctionne
    jeudi 14 mai 2015 15:22
  • Bonjour,

    voici une nouvel version pour Update du programme :

    voici mon code:

    Imports System.Net
    Imports System.IO
    
    Public Class Form1
        Dim save As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "\" & Me.ProductName & ".exe"
        Public WithEvents Download As New WebClient
        Dim sw As New Stopwatch
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Label4.Text = Me.ProductVersion
            Try
                Dim file As StreamReader = New StreamReader(Download.OpenRead("https://www.dropbox.com/s/1yojtex6anw46ea/Version.txt?dl=1")) '?d1 = 0 par 1 pour Forcer afficher le fichier txt
                Label6.Text = file.ReadToEnd
                file.Close()
                If Label4.Text >= Label6.Text Then
                    Label1.Text = "Aucune nouvelle mise à jour"
                    Label1.ForeColor = Color.Red
                    Button1.ForeColor = Color.Red
                    Button1.Enabled = False
                Else
                    Label1.Text = "Une mise à jour est disponible"
                    Button1.ForeColor = Color.Blue
                    Button1.Enabled = True
                End If
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Try
                Button1.Enabled = False
                sw.Start()
                Download.DownloadFileAsync(New Uri("https://www.dropbox.com/s/i5wil2fgns46j44/Udpate%20Dropbox.exe?dl=1"), save)'?d1 = 0 par 1 pour Forcer telecharger le fichier exe
            Catch ex As Exception
                MsgBox(" ERREUR ! ", MsgBoxStyle.Critical)
            End Try
        End Sub
    
        Private Sub Download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles Download.DownloadProgressChanged
            Try
                Label8.ForeColor = Color.Blue
                Label8.Text = "Téléchargement en cours"
                Label12.ForeColor = Color.Blue
                Label12.Text = (e.BytesReceived / 1024 / 1024).ToString("0.00") & " KB / " & (e.TotalBytesToReceive / 1024 / 1024).ToString("0.00") & " KB "
                ProgressBar1.Value = e.ProgressPercentage
                Label11.ForeColor = Color.Blue
                Label11.Text = (e.BytesReceived / sw.ElapsedMilliseconds).ToString("0.00") & " KB/s"
            Catch ex As Exception
                Download.CancelAsync()
                Label8.ForeColor = Color.Red
                Label8.Text = "Erreur Téléchargement"
            End Try
        End Sub
    
        Private Sub download_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles Download.DownloadFileCompleted
            Button1.Enabled = False
            Label8.ForeColor = Color.Blue
            Label8.Text = "Téléchargement est Terminer"
            ProgressBar1.Value = 0
        End Sub
    End Class

    cordialement,

    zorro591,

    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    vendredi 15 mai 2015 10:52
  • J'ai testé le code et j'obtient toujours l'erreur WebExeption code 460 (restricted).

    Je me pose une question: utiliser vous la version gratuite de Dropbox (comme moi) ou la version payante??

    Je me dis que peut-être la version gratuite est "limitée"??

    qu'en pensez vous?

    J'utilise aussi une version "trial" de visual studio,est-ce que cela peut avoir un lien également??

    vendredi 15 mai 2015 14:26
  • Bonsoir,

    j'ai la version gratuit jusqu’à 2 GO et Visual Basic Prenuim(Microsoft Visual Basic 2010 express) <= si vous avez cet version je peux vous donner la clé gratuitement.

    j'ai essayer votre code depuis de début de votre probléme, un peu améliorer.

    voici en image :

    ajoute dans Form1 un  richtextbox.text et recopie le code(même les liens) dit si vous avez toujours le même erreur :

    Imports System.Net
    Imports System.IO
    
    Public Class Form1
        Dim VersionActuelle As String = Application.ProductVersion
        Dim MAJ As New WebClient
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Me.CheckUpdates()
        End Sub
    
        Sub CheckUpdates()
    
            Dim DerniereVersion As String = MAJ.DownloadString("http://www.dropbox.com/s/1yojtex6anw46ea/Version.txt?dl=1")
    
            If VersionActuelle >= DerniereVersion Then
    
                MsgBox("Vous exécuter la version la plus récente de ce logiciel")
    
            Else
                MsgBox("Une version plus récente de ce logiciel est disponible" & vbNewLine & "Version disponible : " & DerniereVersion, vbOKOnly + MsgBoxStyle.Information, "Attention")
                Dim file As StreamReader = New StreamReader(MAJ.OpenRead("http://www.dropbox.com/s/1yojtex6anw46ea/Version.txt?dl=1")) '?d1 = 0 par 1 pour Forcer afficher le fichier txt
                RichTextBox1.Text = file.ReadToEnd
                file.Close()
            End If
        End Sub
    End Class

    je l'ai essayer avec plusieurs lien, j'ai pas de message d'erreur comme vous avez dit mais pour être sur que votre lien est il bon ? essayer ce code avec votre lien :

    Imports System.IO
    
    Dim MAJ As New WebClient
    
    
    Dim file As StreamReader = New StreamReader(MAJ.OpenRead("votre lien a vous")) 
                RichTextBox1.Text = file.ReadToEnd
                file.Close()
    
    
    Pour voir si il s'afficher la version dans richtextbox1.text = 1.0.0.1 <=exemple

    cordialement,

    Zorro591,

    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    vendredi 15 mai 2015 21:13
  • bonjour,

    s'il vous plait je ne comprend pas cette ligne.

    '?d1 = 0 par 1 pour Forcer afficher le fichier txt'


    Cardinal dev

    mercredi 22 juillet 2015 17:06
  • Bonjour,

    "s'il vous plait je ne comprend pas cette ligne.

    '?d1 = 0 par 1 pour Forcer afficher le fichier txt"

    C'est pour afficher la version 1.0.0.1

    pour faire un exemple :

    Dim DerniereVersion As String = MAJ.DownloadString("http://www.dropbox.com/s/1yojtex6anw46ea/Version.txt?dl=0")
    label1.txt = derniereVersion
    
    'Comme tu vois la version ce n'affiche pas 1.0.0.0 et si tu remplace par dl=1 . tu verras que la version s'affichera.

    Cordialement,

    Zorro591,

    jeudi 23 juillet 2015 12:55
  • merci pour votre réponse,

    mais j'ai une autre préoccupation. avec le liens Dropbox j'obtient "Restricted Content" dans la page web j'ai tout fait mais pas de solution. donc j'ai pensé à OneDrive et j'ai essayé de faire pareil mais la version présente dans le fichier "version.txt" n'apparait pas comme prévue mais a la place c un code html qui apparaît.

    pouvez vous m'aider ?

    merci de vos réponses.


    Cardinal dev

    jeudi 23 juillet 2015 14:30
  • Bonjour,

    les lien de Dropbox ne fonctionne plus c'est normal ça vous dit "Restricted content". A vous créer un lien avec Dropbox.

    Pouvez-vous partager le lien du fichier txt?

    Merci,cordialement,

    zorro591,

    vendredi 24 juillet 2015 13:04
  • voici le lien

    https://www.dropbox.com/s/f029269y5xhtlec/version.txt?dl=0


    Cardinal dev

    vendredi 24 juillet 2015 13:49
  • Bonjour,

    le lien que vous m'avez donner n'ai pas bon.

    voici en image comment partager le lien :

    Maintenant à vous de créer un lien Dropbox à la fin de votre lien remplacer version.txt?dl=0 par version.txt?dl=1 pour afficher la version .

    Cordialement,

    vendredi 24 juillet 2015 15:10
  • Merci de votre réponse.


    Cardinal dev

    vendredi 24 juillet 2015 22:25