Jump to content
ntnpop

Auto Updater

Recommended Posts

ntnpop

Boas,

Eu estou a desenvolver a minha PAP, e quero meter um auto updater, so que acontece que o código que eu tenho, saca a nova versão e o user é que a tem de executar, o que eu queria, era um em que o utilizador não tive-se de "mexer" em nada.

Se Alguem me pude-se dar umas dicas.

Obrigado

Share this post


Link to post
Share on other sites
emanuelx

este código está a funcionar, só tens de acrecentar as barras de progresso

Private temp as string
Sub vesaoactual()
Dim inStream As StreamReader
Dim webRequest As WebRequest
Dim webresponse As WebResponse
Dim ficheiro As String = vbNullString
Dim versao As String = vbNullString
versao = My.Application.Info.Version.ToString 'vai buscar a versão do programa
Try
webRequest = webRequest.Create("http://dl.dropbox.com/u/22494369/versao.txt") 'ficheiro de texto que o programa vai fazer download e ler.
webresponse = webRequest.GetResponse()
inStream = New StreamReader(webresponse.GetResponseStream())
System.Threading.Thread.Sleep(60000)
ficheiro = inStream.ReadToEnd() 'vai ler o ficheiro versao.txt
Catch ex As Exception
End Try
If ficheiro <> versao Then ' aqui comprara se a a versao que leu do ficheiro é diferente da versao do ficheiro .exe, se for diferente executa o subprograma versaodown()
versaodown()
End If
End Sub
Sub versaodown()
Dim updates as string
Dim download As New System.Net.WebClient
Try
updates = "http://dl.dropbox.com/u/22494369/updates.exe"
temp = System.IO.Path.GetTempPath()
download.DownloadFile(updates, temp & "updates.exe")
Timer4.Interval = (600000)'tempo em milissegundos para dar tempo para o ficheiro ser descarregado
Timer4.Enabled = True
Catch ex As Exception
End Try
End Sub

Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick
Shell(temp & "updates.exe")
Timer5.Interval = (300000)
Timer4.Stop()

End Sub


com calma e sem stresses

Share this post


Link to post
Share on other sites
ntnpop

este código está a funcionar, só tens de acrecentar as barras de progresso

Private temp as string
Sub vesaoactual()
Dim inStream As StreamReader
Dim webRequest As WebRequest
Dim webresponse As WebResponse
Dim ficheiro As String = vbNullString
Dim versao As String = vbNullString
versao = My.Application.Info.Version.ToString 'vai buscar a versão do programa
Try
webRequest = webRequest.Create("http://dl.dropbox.com/u/22494369/versao.txt") 'ficheiro de texto que o programa vai fazer download e ler.
webresponse = webRequest.GetResponse()
inStream = New StreamReader(webresponse.GetResponseStream())
System.Threading.Thread.Sleep(60000)
ficheiro = inStream.ReadToEnd() 'vai ler o ficheiro versao.txt
Catch ex As Exception
End Try
If ficheiro <> versao Then ' aqui comprara se a a versao que leu do ficheiro é diferente da versao do ficheiro .exe, se for diferente executa o subprograma versaodown()
versaodown()
End If
End Sub
Sub versaodown()
Dim updates as string
Dim download As New System.Net.WebClient
Try
updates = "http://dl.dropbox.com/u/22494369/updates.exe"
temp = System.IO.Path.GetTempPath()
download.DownloadFile(updates, temp & "updates.exe")
Timer4.Interval = (600000)'tempo em milissegundos para dar tempo para o ficheiro ser descarregado
Timer4.Enabled = True
Catch ex As Exception
End Try
End Sub

Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick
Shell(temp & "updates.exe")
Timer5.Interval = (300000)
Timer4.Stop()

End Sub

So uma perguntinha, isso numa class?

Share this post


Link to post
Share on other sites
bioshock

Boas,

Eu estou a desenvolver a minha PAP, e quero meter um auto updater, so que acontece que o código que eu tenho, saca a nova versão e o user é que a tem de executar, o que eu queria, era um em que o utilizador não tive-se de "mexer" em nada.

Se Alguem me pude-se dar umas dicas.

Obrigado

Tendo em conta a dúvida dele, tudo o que se tem que dizer é:

Process.Start(Caminho do ficheiro)

Share this post


Link to post
Share on other sites
emanuelx

podes por numa classe ou numa form.

tens depois é de fazer as tuas alteraçoes


com calma e sem stresses

Share this post


Link to post
Share on other sites
ntnpop

Antes de Mais obrigado pelas vossas ajudas.

podes por numa classe ou numa form.

tens depois é de fazer as tuas alteraçoes

Imports System.IO
Imports System.Net

Public Class Form1
    Private temp As String
    Sub vesaoactual()
        Dim inStream As StreamReader
        Dim webRequest As WebRequest
        Dim webresponse As WebResponse
        Dim ficheiro As String = vbNullString
        Dim versao As String = vbNullString
        versao = My.Application.Info.Version.ToString 'vai buscar a versão do programa
        Try
            webRequest = webRequest.Create("http://dl.dropbox.com/u/11515011/Version.txt") 'ficheiro de texto que o programa vai fazer download e ler.
            webresponse = webRequest.GetResponse()
            inStream = New StreamReader(webresponse.GetResponseStream())
            System.Threading.Thread.Sleep(60000)
            ficheiro = inStream.ReadToEnd() 'vai ler o ficheiro versao.txt
        Catch ex As Exception
        End Try
        If ficheiro <> versao Then ' aqui comprara se a a versao que leu do ficheiro é diferente da versao do ficheiro .exe, se for diferente executa o subprograma versaodown()
            versaodown()
        End If
    End Sub
    Sub versaodown()
        Dim updates As String
        Dim download As New System.Net.WebClient
        Try
            updates = "http://dl.dropbox.com/u/11515011/Update.exe"
            temp = System.IO.Path.GetTempPath()
            download.DownloadFile(updates, temp & "updates.exe")
            Timer4.Interval = (600000) 'tempo em milissegundos para dar tempo para o ficheiro ser descarregado
            Timer4.Enabled = True
        Catch ex As Exception
        End Try
    End Sub

    Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick
        Shell(temp & "updates.exe")
        Timer5.Interval = (300000)
        Timer4.Stop()
    End Sub
End Class

o código que tenho é esse, mas fica tudo "normal" :cheesygrin:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.