Jump to content
redkiller

Auto Updater

Recommended Posts

redkiller

Ora boas eu tentei editar um updater apesar de sair furado.

O que eu procuro é algo do genero que eu encontrei, mas ta meio esquesito, eu passo a explicar:

Tenho aqui um projecto que tem o que eu quero mas não faz exatamente tudo, enfim directo ao assunto (posso nao saber me explicar  mas desta forma indico o que quero saber, porque tudo o que me dizem até agora ja eu sei e se não soubesse nem devia estar a programar enfim, o meu problema é que eu faço a parte dificil e não consigo fazer o mais facil  :wallbash:»»este so eu maior parte do tempo lol):

objectivo»» iniciar aplicação que ve se tem updates antes de ligar o executavel,

dados» servidor "http://binoteam.no-ip.org" »XAMPP, da muito trabalho com 2 pcs, estou a trabalhar no portatil com xampp na mesma ou seja localhost mais rapido para testar mas o servidor esta aqui mesmo a mão se necessario.

Encontrei esta aplicação em vb o que é exatamente o que quero, editando algumas partes que eu ja modifiquei e umas funcionabilidades que nao sei mudar e que quero alterar.

sdmvdc.png

Até aqui tem tudo o que quero apesar de não saber bem como está a ser feito o check the versão porque nem sei qual é a base da versão enfim não sei. Mas da-me sempre new version avaible.

-» Form1.vb

Public Class Form1
    Private Sub CheckUpdata(ByVal url As String)

        WebClient1.DownloadFileAsync(New Uri(url), "version.ver")

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CheckUpdata("http://localhost/download/version.txt")

    End Sub

    Private Sub WebClient1_DownloadFileCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles WebClient1.DownloadFileCompleted



        ProgressBar1.Value = ProgressBar1.Maximum
        Dim version As New TextBox
        version.Text = My.Computer.FileSystem.ReadAllText("version.ver")
        Label2.Text = version.Text

        Dim new_ver As Double = version.Text
        Dim cur_ver As Double = Application.ProductVersion
        If new_ver > cur_ver Then
            On Error Resume Next
            If My.Computer.FileSystem.FileExists("version.ver") Then
                My.Computer.FileSystem.DeleteFile("version.ver")
            End If

            MsgBox("New version detected!", MsgBoxStyle.Information, "Updater")
            frmDLMain.Show()
            Me.Close()
        Else

            If My.Computer.FileSystem.FileExists("version.ver") Then
                My.Computer.FileSystem.DeleteFile("version.ver")
            End If
            Me.Close()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub

    Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click

    End Sub
End Class

161lzps.png

1-Queria retirar os butões e fazer automatico do tipo ele espera 2 ou 3 segundos e começa a fazer o update

-» frmDLMain.vb

Public Class frmDLMain
    'By:
    Inherits System.Windows.Forms.Form
    Private Const URL_MESSAGE As String = "http://localhost/download/TBC.exe"
    Private Const DIR_MESSAGE As String = ""
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents Timer2 As System.Windows.Forms.Timer
    Private Const AW_BLEND = &H80000  'Uses a fade effect. This flag can be used only if hwnd is a top-level window.
    Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Int32, ByVal dwTime As Int32, ByVal dwFlags As Int32) As Boolean
    Dim winHide As Integer = &H10000
    Dim winBlend As Integer = &H80000

    'DECLARE THIS WITHEVENTS SO WE GET EVENTS ABOUT DOWNLOAD PROGRESS
    Private WithEvents _Downloader As WebFileDownloader

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Friend WithEvents txtURL As System.Windows.Forms.TextBox
    Friend WithEvents ProgBar As System.Windows.Forms.ProgressBar
    Friend WithEvents cmdDownload As System.Windows.Forms.Button
    Friend WithEvents cmdClose As System.Windows.Forms.Button
    Friend WithEvents cmdGetFolder As System.Windows.Forms.Button
    Friend WithEvents txtDownloadTo As System.Windows.Forms.TextBox
    Friend WithEvents dlgFolderBrowse As System.Windows.Forms.FolderBrowserDialog
    Friend WithEvents lblProgress As System.Windows.Forms.Label
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container()
        Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmDLMain))
        Me.txtURL = New System.Windows.Forms.TextBox()
        Me.ProgBar = New System.Windows.Forms.ProgressBar()
        Me.cmdDownload = New System.Windows.Forms.Button()
        Me.cmdClose = New System.Windows.Forms.Button()
        Me.cmdGetFolder = New System.Windows.Forms.Button()
        Me.txtDownloadTo = New System.Windows.Forms.TextBox()
        Me.dlgFolderBrowse = New System.Windows.Forms.FolderBrowserDialog()
        Me.lblProgress = New System.Windows.Forms.Label()
        Me.TextBox1 = New System.Windows.Forms.TextBox()
        Me.Timer2 = New System.Windows.Forms.Timer(Me.components)
        Me.SuspendLayout()
        '
        'txtURL
        '
        Me.txtURL.Enabled = False
        Me.txtURL.Location = New System.Drawing.Point(37, 81)
        Me.txtURL.Name = "txtURL"
        Me.txtURL.Size = New System.Drawing.Size(10, 20)
        Me.txtURL.TabIndex = 0
        '
        'ProgBar
        '
        Me.ProgBar.Location = New System.Drawing.Point(12, 10)
        Me.ProgBar.Name = "ProgBar"
        Me.ProgBar.Size = New System.Drawing.Size(468, 17)
        Me.ProgBar.TabIndex = 1
        '
        'cmdDownload
        '
        Me.cmdDownload.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.cmdDownload.Location = New System.Drawing.Point(390, 32)
        Me.cmdDownload.Name = "cmdDownload"
        Me.cmdDownload.Size = New System.Drawing.Size(90, 22)
        Me.cmdDownload.TabIndex = 3
        Me.cmdDownload.Text = "Updata"
        '
        'cmdClose
        '
        Me.cmdClose.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.cmdClose.Location = New System.Drawing.Point(294, 32)
        Me.cmdClose.Name = "cmdClose"
        Me.cmdClose.Size = New System.Drawing.Size(90, 22)
        Me.cmdClose.TabIndex = 4
        Me.cmdClose.Text = "Cancel"
        '
        'cmdGetFolder
        '
        Me.cmdGetFolder.Enabled = False
        Me.cmdGetFolder.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.cmdGetFolder.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.cmdGetFolder.Location = New System.Drawing.Point(104, 117)
        Me.cmdGetFolder.Name = "cmdGetFolder"
        Me.cmdGetFolder.Size = New System.Drawing.Size(10, 20)
        Me.cmdGetFolder.TabIndex = 2
        Me.cmdGetFolder.Text = "..."
        Me.cmdGetFolder.TextAlign = System.Drawing.ContentAlignment.BottomCenter
        Me.cmdGetFolder.Visible = False
        '
        'txtDownloadTo
        '
        Me.txtDownloadTo.Enabled = False
        Me.txtDownloadTo.Location = New System.Drawing.Point(60, 102)
        Me.txtDownloadTo.Name = "txtDownloadTo"
        Me.txtDownloadTo.Size = New System.Drawing.Size(10, 20)
        Me.txtDownloadTo.TabIndex = 1
        Me.txtDownloadTo.Visible = False
        '
        'lblProgress
        '
        Me.lblProgress.Location = New System.Drawing.Point(12, 29)
        Me.lblProgress.Name = "lblProgress"
        Me.lblProgress.Size = New System.Drawing.Size(373, 16)
        Me.lblProgress.TabIndex = 8
        Me.lblProgress.Text = "#Progress"
        '
        'TextBox1
        '
        Me.TextBox1.Enabled = False
        Me.TextBox1.Location = New System.Drawing.Point(104, 93)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.Size = New System.Drawing.Size(10, 20)
        Me.TextBox1.TabIndex = 12
        Me.TextBox1.Text = "DirectEB - HHM Technology.exe"
        Me.TextBox1.Visible = False
        '
        'Timer2
        '
        Me.Timer2.Interval = 500
        '
        'frmDLMain
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(492, 82)
        Me.ControlBox = False
        Me.Controls.Add(Me.cmdClose)
        Me.Controls.Add(Me.cmdDownload)
        Me.Controls.Add(Me.lblProgress)
        Me.Controls.Add(Me.TextBox1)
        Me.Controls.Add(Me.cmdGetFolder)
        Me.Controls.Add(Me.txtDownloadTo)
        Me.Controls.Add(Me.ProgBar)
        Me.Controls.Add(Me.txtURL)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
        Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
        Me.MaximizeBox = False
        Me.Name = "frmDLMain"
        Me.ShowInTaskbar = False
        Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
        Me.Text = "Clan Bino Client Updater - Updating"
        Me.TopMost = True
        Me.ResumeLayout(False)
        Me.PerformLayout()

    End Sub

#End Region

    'SUB MAIN WHERE WE ENABLE VISUAL STYLES, AND RUN MAIN FORM
    Public Shared Sub Main()
        Application.EnableVisualStyles()
        Application.DoEvents()
        Application.Run(New frmDLMain)
        Application.Exit()
    End Sub

    'THESE ARE JUST FOR GUI TO MAKE IT LOOK A LITTLE MORE NICE
    Private Sub txtURL_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtURL.GotFocus
        If txtURL.Text = URL_MESSAGE Then txtURL.Text = String.Empty
    End Sub
    Private Sub txtURL_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtURL.LostFocus
        If txtURL.Text = String.Empty Then txtURL.Text = URL_MESSAGE
    End Sub
    Private Sub txtDownloadTo_GotFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDownloadTo.GotFocus
        If txtDownloadTo.Text = DIR_MESSAGE Then txtDownloadTo.Text = String.Empty
    End Sub
    Private Sub txtDownloadTo_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDownloadTo.LostFocus
        If txtDownloadTo.Text = String.Empty Then txtDownloadTo.Text = DIR_MESSAGE
    End Sub

    'CLOSE PROGRAM
    Private Sub cmdClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClose.Click
        Try
            AnimateWindow(Me.Handle.ToInt32, CInt(1000), winHide Or winBlend)
        Catch ex As Exception
            Return
        End Try
        Try
            Me.Close()
        Catch ex As Exception
            Return
        End Try
    End Sub

    Private Sub cmdDownload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDownload.Click
        Timer2.Start()

        cmdDownload.Enabled = False

        cmdDownload.Enabled = False
        cmdClose.Enabled = False

        'DO THE DOWNLOAD
        Try
            _Downloader = New WebFileDownloader

            _Downloader.DownloadFileWithProgress(txtURL.Text, ("") & "TBC.exe")
        Catch ex As Exception
            MessageBox.Show("ERROR: " & ex.Message)
            cmdClose.Enabled = True
            cmdDownload.Enabled = True
        End Try
    End Sub

    'returns all text from last "/" in URL, but puts a "\" in front of the file name..
    Private Function GetFileNameFromURL(ByVal URL As String) As String
        If URL.IndexOf("/"c) = -1 Then Return String.Empty

        Return "\" & URL.Substring(URL.LastIndexOf("/"c) + 1)
    End Function

    'GET A FOLDER TO DOWNLOAD THE FILE TO
    Private Sub cmdGetFolder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGetFolder.Click
        If dlgFolderBrowse.ShowDialog(Me) <> DialogResult.Cancel Then
            txtDownloadTo.Text = dlgFolderBrowse.SelectedPath
        End If
    End Sub

    'FIRES WHEN WE HAVE GOTTEN THE DOWNLOAD SIZE, SO WE KNOW WHAT BOUNDS TO GIVE THE PROGRESS BAR
    Private Sub _Downloader_FileDownloadSizeObtained(ByVal iFileSize As Long) Handles _Downloader.FileDownloadSizeObtained
        ProgBar.Value = 0
        ProgBar.Maximum = Convert.ToInt32(iFileSize)
    End Sub

    'FIRES WHEN DOWNLOAD IS COMPLETE
    Private Sub _Downloader_FileDownloadComplete() Handles _Downloader.FileDownloadComplete
        ProgBar.Value = ProgBar.Maximum

        My.Settings.Save()
        'download.Show()
        Process.Start("TBC.exe")

        cmdClose.Text = "Close"
        cmdClose.Enabled = True

        ProgBar.Value = ProgBar.Minimum
        lblProgress.Text = String.Empty
    End Sub

    'FIRES WHEN DOWNLOAD FAILES. PASSES IN EXCEPTION INFO
    Private Sub _Downloader_FileDownloadFailed(ByVal ex As System.Exception) Handles _Downloader.FileDownloadFailed
        MessageBox.Show("Error: " & ex.Message)
        cmdClose.Enabled = True
        cmdDownload.Enabled = True
    End Sub

    'FIRES WHEN MORE OF THE FILE HAS BEEN DOWNLOADED
    Private Sub _Downloader_AmountDownloadedChanged(ByVal iNewProgress As Long) Handles _Downloader.AmountDownloadedChanged
        ProgBar.Value = Convert.ToInt32(iNewProgress)
        lblProgress.Text = WebFileDownloader.FormatFileSize(iNewProgress) & " of " & WebFileDownloader.FormatFileSize(ProgBar.Maximum) & " Downloaded."
        Application.DoEvents()
    End Sub

    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        lblProgress.Text = String.Empty
        txtURL.Text = URL_MESSAGE
        txtDownloadTo.Text = DIR_MESSAGE
        cmdGetFolder.Focus()
        txtURL.Hide()
        Show()



    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Try
            AnimateWindow(Me.Handle.ToInt32, CInt(1000), winHide Or winBlend)
        Catch ex As Exception
            Return
        End Try
        Me.Close()
    End Sub

    Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Me.Show()
    End Sub

    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        cmdDownload.Enabled = False
    End Sub
End Class

2- Depois tenho um ficheiro deve ser para calcular o tamanho a sacar talvez n sei para que serve bem:

-»WebFileDownloader.vb

Imports System.Net
Imports System.IO

Public Class WebFileDownloader
    Public Event AmountDownloadedChanged(ByVal iNewProgress As Long)
    Public Event FileDownloadSizeObtained(ByVal iFileSize As Long)
    Public Event FileDownloadComplete()
    Public Event FileDownloadFailed(ByVal ex As Exception)

    Private mCurrentFile As String = String.Empty

    Public ReadOnly Property CurrentFile() As String
        Get
            Return mCurrentFile
        End Get
    End Property
    Public Function DownloadFile(ByVal URL As String, ByVal Location As String) As Boolean
        Try
            mCurrentFile = GetFileName(URL)
            Dim WC As New WebClient
            WC.DownloadFile(URL, Location)
            RaiseEvent FileDownloadComplete()
            Return True
        Catch ex As Exception
            RaiseEvent FileDownloadFailed(ex)
            Return False
        End Try
    End Function

    Private Function GetFileName(ByVal URL As String) As String
        Try
            Return URL.Substring(URL.LastIndexOf("/") + 1)
        Catch ex As Exception
            Return URL
        End Try
    End Function
    Public Function DownloadFileWithProgress(ByVal URL As String, ByVal Location As String) As Boolean
        Dim FS As FileStream
        Try
            mCurrentFile = GetFileName(URL)
            Dim wRemote As WebRequest
            Dim bBuffer As Byte()
            ReDim bBuffer(256)
            Dim iBytesRead As Integer
            Dim iTotalBytesRead As Integer

            FS = New FileStream(Location, FileMode.Create, FileAccess.Write)
            wRemote = WebRequest.Create(URL)
            Dim myWebResponse As WebResponse = wRemote.GetResponse
            RaiseEvent FileDownloadSizeObtained(myWebResponse.ContentLength)
            Dim sChunks As Stream = myWebResponse.GetResponseStream
            Do
                iBytesRead = sChunks.Read(bBuffer, 0, 256)
                FS.Write(bBuffer, 0, iBytesRead)
                iTotalBytesRead += iBytesRead
                If myWebResponse.ContentLength < iTotalBytesRead Then
                    RaiseEvent AmountDownloadedChanged(myWebResponse.ContentLength)
                Else
                    RaiseEvent AmountDownloadedChanged(iTotalBytesRead)
                End If
            Loop While Not iBytesRead = 0
            sChunks.Close()
            FS.Close()
            RaiseEvent FileDownloadComplete()
            Return True
        Catch ex As Exception
            If Not (FS Is Nothing) Then
                FS.Close()
                FS = Nothing
            End If
            RaiseEvent FileDownloadFailed(ex)
            Return False
        End Try
    End Function

    Public Shared Function FormatFileSize(ByVal Size As Long) As String
        Try
            Dim KB As Integer = 1024
            Dim MB As Integer = KB * KB
            ' Return size of file in kilobytes.
            If Size < KB Then
                Return (Size.ToString("D") & " bytes")
            Else
                Select Case Size / KB
                    Case Is < 1000
                        Return (Size / KB).ToString("N") & "KB"
                    Case Is < 1000000
                        Return (Size / MB).ToString("N") & "MB"
                    Case Is < 10000000
                        Return (Size / MB / KB).ToString("N") & "GB"
                End Select
            End If
        Catch ex As Exception
            Return Size.ToString
        End Try
    End Function
End Class

3- Não sei se é perciso o assembly version talvez dai o bug do checker? (desculpem ja estou meio baralhado porque nao percebo muito bem o funcionamento sem o assembly version).

xfpzex.png

4- Queria fazer download de varios objectos (talvez no checking) ele em algum lado dizer: checking xx.exe»good, checking spr»needs update, checking data»good passado todos os checks, aguarda 3 segundos e vai sacar apenas os updates que necessita, ou inicia o client.

5- O executavel so seria executado após todos os downloads e não o seu proprio

6- Queria adicionar caixa a dizer versão is up to date isto pois ira correr sempre pelo updater para abrir o cliente ou se alguem tiver uma solução melhor...

e que espera-se 5 segundos apos os downloads e se fecha-se não quero botão close.

basicamente é isto.... eu de base nao sei o que fazer, ou seja como começar do tipo (que faço em 1º lugar? crio uma caixa, onde ponho o codigo etc isto no vb, unicas duvidas que tenho sao no vb, mas isto é so um extra para me conseguir desembrulhar sozinho).

7-Questão:

Qual a diferença entre Debug e Release?

8-Questão:

Onde escolhe o Framework? E que vantagens ou devantagens tenho e se faz alguma diferença no meu caso. (acho que framework 3.5 seria o indicado pois toda a gente o tem).

9-Questão offtopic:

Onde posso pedir a alguem para ver falhas na segurança do meu website para criar o minimo de condições? está online a partir deste momento!

Agradeço desde ja a vossa atenção.

Cumprimentos

Ricardo Reis

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

Afinal qual é a linguaguem??

Criaste este em VB.Net e outro igual em C++


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Caça

Existem várias maneiras de o fazer, podes fazer o download ficheiro a ficheiro ou criar um executável externo com tudo lá dentro, etc.

aqui uma vista de olhos


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
redkiller

caça até parece bom tutorial mas eu dei de caras com o vb 2003 ontem isto está chines sei criar boxs butoes e tal mas ta um pouco esquesito será que podias dar umas dicas de bigginer para fazer este tut? sff

Share this post


Link to post
Share on other sites
Caça

Porquê 2003? Já vamos no 2010...


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
redkiller

caça foi o que me apareceu mas ya vo buscar o 2010 entretanto fazes um pequeno tut para mim sff? eu aprendo rapido diz so dicas essenciais :D brigadao

Share this post


Link to post
Share on other sites
redkiller

daqui a 1 hora tenho o completo, seguindo queria mesmo era um mini tuturial ninguem me consegue dar um parecer para eu começar a programar é que eu ja passei por tanta coisa sem saber? nao tenho tempo para estudar C++(base do client e servidor com que trabalho) e basicamente faço tudo por tuturiais e sabedoria minha Vb parece bom simples eficaz e facil de mexer....

crio paginas web fasso 30 por uma linha por merito proprio e do Google, que eu costumo dizer que é o site dos inteligentes

Share this post


Link to post
Share on other sites
redkiller

nao acredito que aqui ninguem me consiga dizer que fazer.... penso que nao é nada de mais fazer um updater???

Share this post


Link to post
Share on other sites
Andrepereira9

nao acredito que aqui ninguem me consiga dizer que fazer.... penso que nao é nada de mais fazer um updater???

O @Caça já te indicou um bom Tutorial

Existem várias maneiras de o fazer, podes fazer o download ficheiro a ficheiro ou criar um executável externo com tudo lá dentro, etc.

aqui uma vista de olhos


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
redkiller

certo mas indiquei ao caça que nao percebo muito disto e se alguem me podia dizer onde meto o codigo que faço.... tipo

1,2,3,4 paço porque eu olho para la vejo blablabla text file e codigo

desculpem mas para quem não sabe olha e fica na mesma pff nao custa nada acho eu alem disso só preciso de entender 1 vez para perceber

Share this post


Link to post
Share on other sites
ribeiro55

daqui a 1 hora tenho o completo

A versão Express que te indicaram, serve perfeitamente para fazer o que pretendes e não é ilegal.

Para além disso, não vais ter problemas depois em distribuír algo compilado por a Express IDE, ao passo que com uma versão pirateada...

Aquilo que pretendes é relativamente fácil de fazer.

A framework tem bons métodos de download de ficheiros e não há muito por onde chatear.

No último post já estás a fugir ao que inicialmente pediste:

Por pontos:

1-Por onde começar a estudar (tutoriais, youtube, etc, eu arranjo-me com dicas)

Já te indicaram um tutorial por onde podes começar a estudar e a colocar dúvidas

2-Que programa a utilizar

Para o que pretendes, a versão Express é a mais indicada, e gratuita. Também já te foi indicado.

3-Algumas dicas

Já que dispões de um servidor, e aparentemente de um domain name dinâmico, só precisas de decidir como queres expôr os ficheiros.

Podes optar por utilizar o protocolo FTP, e eventualmente exigir credenciais, mas dada a natureza dos ficheiros, penso que vais muito melhor servido com o protocolo HTTP.

Se colocares os ficheiros de update numa pasta na "home" de um webserver (aparentemente, Apache) poderás aceder ao ficheiro de forma muito simples.

Por exemplo, se criares uma pasta "update", na "htdocs", e um ficheiro "update.txt" consegues aceder-lhe com o seguinte URL: binoteam.no-ip.org/update/update.txt

Basta depois utilizar estes URLs na obtenção dos ficheiros.

Dá uma vista de olhos aqui. Trata-se da documentação para a classe WebClient, que é a forma mais simples que tens para ir buscar ficheiros.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
redkiller

ninguem me ajuda? não parece nada de dificil apesar de eu so obter erros, nao sei duplicar nada nem criar mais coisas.......

Share this post


Link to post
Share on other sites
redkiller

criei updater com tudo e funciona mas nao em multi da error "eop" webclient apenas suporta 1 download em simultaneo que faço?

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.