[Déplacé VB NET] Help - UpLauncher

Signaler
Messages postés
6
Date d'inscription
lundi 19 décembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011
-
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
-
Bonjour, je viens poster sur le forum car j'ai des difficulté avec visual basic.
je viens de commencer le VB et j'ai fait un UpLauncher.

Il installes un dossier en .zip dans un dossier mais je n'arrive pas à le faire dézippé. j'ai mis un fichier.jar en attendant

je voudrais changer un peux ce projet.
avec les outils : progressbar
timer

conclusion : je cherche à rajouter une bar de progression + un timer et un .zip qui se dézippe.

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) & "\Dofus\Dofus.exe")
        End
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        MsgBox("Avez-vous pensé à fermer Dofus ? Veuillez attendre le message de confirmation de la mise à jour.", MsgBoxStyle.Exclamation)
        If System.IO.File.Exists("\data\mMylaise.txt") = True Then
            Kill("\data\mMylaise.txt")
            Kill("\Update.zip")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/mMylaise.txt", "\Dofus\data\mMylaise.txt")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/Update.zip", "\Dofus\Update.zip")
        ElseIf System.IO.File.Exists("\data\mMylaise.txt") = False Then
            Kill("\Update.zip")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/mMylaise.txt", "\data\mMylaise.txt")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/Update.zip", "\Update.zip")
        End If
        MsgBox("Mise à jour terminé.", MsgBoxStyle.Information)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/text.txt", "\text.txt")
        Dim up As New System.IO.StreamReader("\text.txt")
        Label2.Text = up.ReadToEnd
        up.Close()
        Kill("\text.txt")
        If System.IO.File.Exists("\data\mMylaise.txt") = True Then
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/mMylaise.txt", "\mMylaise.txt")
            Dim vn As New System.IO.StreamReader("\data\mMylaise.txt")
            Dim vni As New System.IO.StreamReader("\mMylaise.txt")
            Dim nk As String
            Dim nki As String
            nk = vn.ReadLine
            nki = vni.ReadLine
            vn.Close()
            vni.Close()
            Kill("\mMylaise.txt")
            If nk < nki Then
                MsgBox("Une mise à jour est disponible, elle va être téléchgargée.", MsgBoxStyle.Information)
                Button2.PerformClick()
            End If
        End If
        If System.IO.File.Exists("\data\mMylaise.txt") = False Then
            MsgBox("Le UpLauncher va télécharger les fichiers nécessaires à son fonctionnement.", MsgBoxStyle.Information)
            Button2.PerformClick()
        End If
    End Sub
End Class

11 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,
Ce n'est pas du VB6, que je lis, là, dans cette discussion ouverte en pensant y trouver du VB6 !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
6
Date d'inscription
lundi 19 décembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

A :/ du coup je reposte ou je demande de le déplacer ?
Messages postés
14832
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
5 décembre 2021
157
Bonjour,

Ou attendre un admin pour déplacer le message :)

Peux-tu repréciser ?
Je ne vois pas bien la partie où tu dézzipes ?
"je cherche à rajouter une bar de progression + un timer et un .zip qui se dézippe. "

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Messages postés
200
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
28 septembre 2014

Bonsoir, j'est une question, ce code ne servirait pas à faire un Uplauncher pour un serveur privée Dofus ?

PS : Faute d’orthographe :

 MsgBox("Une mise à jour est disponible, elle va être téléchgargée.", MsgBoxStyle.Information)


Bonne programmation !!!
Gabi
lach...
Messages postés
6
Date d'inscription
lundi 19 décembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

cela peux serveur a beaucoup de choses.
Messages postés
6
Date d'inscription
lundi 19 décembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

servir *
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Salut,

Tu peux utiliser cette lib pour zipper/dézipper avec progression. Pour le téléchargement je te recommande l'utilisation de HttpWebRequest (qui fonctionne un peu comme Ajax) plutôt que la fonction DownloadFile. J'ai posté un exemple ici il y a quelques jours.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
200
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
28 septembre 2014

Si tu compte faire un servir privée, je te le dit c'est strictement ILLÉGAL !!! Je t'avertie juste...

Bonne programmation !!!
Gabi
lach...
Messages postés
6
Date d'inscription
lundi 19 décembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

j'ai recommencer la bar de progression marche bien sa dézzipe bien aussi :)
le problème c'est que sa fait la mise à jour tous le temps et quand j'ouvre l'application sa ne fait pas la mise à jour auto faut que je clique sur le bouton update je voudrais que la mise à jour se face tout seul.
la liste box ne marche pas par contre sa je ne comprend pas.

code :

Imports System.Xml.XPath
Imports ICSharpCode.SharpZipLib.Zip
Imports System.IO

Public Class Form1
    Dim Url_MàJ As String = "http://www.vexome.fr/Launcher/dofus/Mylaise/Update.zip"

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        IO.File.Delete("Version.xml")
        IO.File.Delete("Update.zip")
        End
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/text.txt", ("text.txt"))
        Dim up As New System.IO.StreamReader("text.txt")
        Label8.Text = up.ReadToEnd
        up.Close()
        Kill("text.txt")
        If IO.File.Exists("Loader.swf") Then
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/Version.xml", "Version.xml")
        Else
            MsgBox("<Erreur> : Veuillez placez l'upluncher dans le dossier dofus", MsgBoxStyle.Critical)
            End
        End If
        If IO.File.Exists("ICSharpCode.SharpZipLib.dll") Then
        Else
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/dofus/Mylaise/ICSharpCode.SharpZipLib.dll", "ICSharpCode.SharpZipLib.dll")
        End If
        Dim Files As XPathDocument = New XPathDocument("Version.xml")
        Dim Navigateur As XPathNavigator = Files.CreateNavigator
        Dim Choose As XPathNodeIterator = Navigateur.Select("Config/Maj")
        While Choose.MoveNext
            Label6.Text = Choose.Current.SelectSingleNode("Ancienne").Value
            Label5.Text = Choose.Current.SelectSingleNode("Nouvelle").Value
            If Label6.Text >= Label5.Text Then
                MsgBox(" : Mise à Jour indisponible.")
            Else
                MsgBox(" : Mise à Jour disponible.")
            End If
        End While
    End Sub
    Sub Main()
        UnZip("", "Update.zip")
    End Sub
    Public Sub UnZip(ByVal destinationDirectory As String, ByVal myzipfile As String)
        Timer1.Start()
        Label1.Text = "Début de la mise à jour."
        Dim Un As ZipInputStream = New ZipInputStream(File.OpenRead(myzipfile))
        Dim Go As ZipEntry
        Do While (1)
            Go = Un.GetNextEntry()
            If Go Is Nothing Then Exit Do
            If Go.IsFile Then
                Dim Files As New FileInfo(destinationDirectory & "" & Go.Name)
                Directory.CreateDirectory(Files.DirectoryName)
                Dim Full As FileStream = New FileStream(Files.FullName, FileMode.Create)
                Dim Size As Integer = 2048
                Dim Data As Byte() = New Byte(Size) {}
                ListBox1.Items.Add(Files)
                Do Until (Size <= 0)
                    Size = Un.Read(Data, 0, Data.Length)
                    Full.Write(Data, 0, Size)
                    ListBox1.Items.Add(Files)
                Loop
                Full.Flush()
                Full.Close()
            End If
        Loop
        Un.Close()
        MsgBox("Mise à jour terminé !")
        Label1.Text = "Fin de la mise à jour."
        Button2.Enabled = False
        Button1.Enabled = True
        WebBrowser1.Visible = True
        ListBox1.Visible = False
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        WebBrowser1.Visible = False
        ListBox1.Visible = True
        My.Computer.Network.DownloadFile(Url_MàJ, "Update.zip")
        Main()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Me.ProgressBar1.Value = 100 Then
            Me.Timer1.Enabled = False
            Me.Button1.Enabled = True
        Else
            Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
        End If
    End Sub

#Region "Mouse Move Form"

    Dim doDrag As Boolean
    Dim x As Integer
    Dim y As Integer
    Private Sub Accueil_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        doDrag = True
        x = Windows.Forms.Cursor.Position.X - Me.Left
        y = Windows.Forms.Cursor.Position.Y - Me.Top
        Me.Cursor = Cursors.NoMove2D
    End Sub
    Private Sub Accueil_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        If doDrag = True Then
            Me.Top = Windows.Forms.Cursor.Position.Y - y
            Me.Left = Windows.Forms.Cursor.Position.X - x
            Me.Cursor = Cursors.NoMove2D
        End If
    End Sub

    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        doDrag = False
        Me.Cursor = Cursors.Default
    End Sub

#End Region
End Class
Messages postés
6
Date d'inscription
lundi 19 décembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

j'ai repris la 1e version de mon 1e script et j'ai ajouter un timer et une progresse bar qui sont invisible
le UpLauncher apparait que quand la mise a jour automatique et fini. ( je voudrais qu'il s'ouvre avent )
et quand on clique sur le bouton Update le launcher freez pour faire la mise à jour donc on vois la progresse bar se remplir que après et on n'arrive pas au message "Mise à jour terminé."
si quelqu'un voie le problème :s
( c'est possible de faire comme le label 2 ? faire apparaîtreune message par fichier.txt dans une fenêtre ouvert par un bouton ? )

code :

Imports ICSharpCode.SharpZipLib.Zip

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.exe", TextBox1.Text & " " & TextBox2.Text & " serveur.vexome.fr")
        End
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        MsgBox("Avez-vous pensé à fermer minecraft ? Veuillez attendre le message de confirmation de la mise à jour.", MsgBoxStyle.Exclamation)
        Timer1.Start()
        Button1.Enabled = False
        Button2.Enabled = False
        Button3.Enabled = False
        Label1.Visible = False
        Label2.Visible = False
        ProgressBar1.Visible = True
        If System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt") = True Then
            Kill(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt")
            Kill(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.jar")
            Kill(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.exe")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/minecraft/vexome/officiel/mVexome.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/minecraft/vexome/officiel/minecraft.jar", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.jar")
            My.Computer.Network.DownloadFile("https://s3.amazonaws.com/MinecraftDownload/launcher/Minecraft.exe", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.exe")
        ElseIf System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt") = False Then
            Kill(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.jar")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/minecraft/vexome/officiel/mVexome.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt")
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/minecraft/vexome/officiel/minecraft.jar", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.jar")
            My.Computer.Network.DownloadFile("https://s3.amazonaws.com/MinecraftDownload/launcher/Minecraft.exe", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\minecraft.exe")
        End If
        Timer1.Stop()
        MsgBox("Mise à jour terminé.", MsgBoxStyle.Information)
        Button1.Enabled = True
        Button2.Enabled = True
        Button3.Enabled = True
        ProgressBar1.Visible = False
        Label1.Visible = True
        Label2.Visible = True
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/minecraft/vexome/text.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\text.txt")
        Dim up As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\text.txt")
        Label2.Text = up.ReadToEnd
        up.Close()
        Kill(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\text.txt")
        My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/minecraft/vexome/cracker/mVexome.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\resources\mVexome.txt")
        Dim op As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\resources\mVexome.txt")
        Label7.Text = op.ReadToEnd
        op.Close()
        Kill(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\resources\mVexome.txt")
        If System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt") = True Then
            My.Computer.Network.DownloadFile("http://www.vexome.fr/Launcher/minecraft/vexome/officiel/mVexome.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\mVexome.txt")
            Dim vn As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt")
            Dim vni As New System.IO.StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\mVexome.txt")
            Label7.Text = vni.ReadToEnd
            Dim nk As String
            Dim nki As String
            nk = vn.ReadLine
            nki = vni.ReadLine
            vn.Close()
            vni.Close()
            Kill(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\mVexome.txt")
            If nk < nki Then
                MsgBox("Une mise à jour est disponible, elle va être téléchgargée.", MsgBoxStyle.Information)
                Button2.PerformClick()
            End If
        End If
        If System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\bin\mVexome.txt") = False Then
            MsgBox("Le launcher va télécharger les fichiers nécessaires à son fonctionnement.", MsgBoxStyle.Information)
            Button2.PerformClick()
        End If
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Me.ProgressBar1.Value = 100 Then
            Me.Timer1.Enabled = False
        Else
            Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
        End If
    End Sub

    Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        Process.Start("http://www.vexome.fr")
    End Sub
#Region "Mouse Move Form"

    Dim doDrag As Boolean
    Dim x As Integer
    Dim y As Integer
    Private Sub Accueil_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        doDrag = True
        x = Windows.Forms.Cursor.Position.X - Me.Left
        y = Windows.Forms.Cursor.Position.Y - Me.Top
        Me.Cursor = Cursors.NoMove2D
    End Sub
    Private Sub Accueil_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        If doDrag = True Then
            Me.Top = Windows.Forms.Cursor.Position.Y - y
            Me.Left = Windows.Forms.Cursor.Position.X - x
            Me.Cursor = Cursors.NoMove2D
        End If
    End Sub

    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        doDrag = False
        Me.Cursor = Cursors.Default
    End Sub

#End Region

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

    End Sub
End Class
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Salut,

Franchement tu postes le code de ta form en vrac comme ça... Moi perso je ne vois pas ce que tu cherches à faire et encore moins ce qui ne fonctionne pas. On ne peu pas deviner !

Ta progresse bar par exemple elle ne sert strictement à rien vu qu'elle fonctionne via un timer et non via la progression réelle donc, soit => poubelle, soit tu utilise un code qui la fera fonctionner (comme celui que je t'ai fourni, je me demande pourquoi d'ailleurs...).

Ton code est un amas de lignes en vrac, espace-le, commente le et déjà tu t'y retrouveras mieux!

Utilises Application.Exit plutôt que End et IO.File.Delete plutôt que Kill. Utilises des variables pour les chemins de fichier il vaut mieux avoir :

Dim TextFile As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\text.txt"

If IO.File.Exists(TextFile)
    IO.File.Delete(TextFile)
End If
Dim FS As Stream = IO.File.Create(TextFile)


C'est plus lisible que de faire un truc du genre :

If IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\text.txt")
    IO.File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\text.txt")
End If
Dim FS As Stream = IO.File.Create(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\.minecraft\text.txt")


Regroupe tes téléchargements dans une procédure appelé DownloadFiles par exemple. C'est aussi plus propre.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.