Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VitorM

Auto Update

Recommended Posts

Olá,Gostaria de fazer um auto update pra um sistema meu:Gostaria que ao executar o programa ele verificasse em um servidor se existe uma versão mais recente do executável, caso exita ele abre um msgbox perguntando se deseja atualizar, se a pessoa optar por atualizar, ele baixa o executável, na pasta de instalação do programa, substitui o atual e reinicia o programa.Alguém sabe como fazer? :o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vitor,Veja esse artigo tirado do site www.macoratti/net, acho que vai ajudá-lo, mas depois post seu código completo para servir de exemplo para os outros colegas.Atualizando a versão do seu programa VB pela Internet !!!________________________________________Quem um dia poderia imaginar que a Internet pudesse chegar ao nível que chegou hoje. Podemos dizer que a Internet é algo muito recente se comparada com outras tecnologias. Podemos dizer também que hoje quase tudo gravita em torno da Web. Creio que a medida do sucesso de uma tecnologia é o fato de facilitar a vida das pessoas; se uma tecnologia for acessível as pessoas e elas perceberem que com sua utilização a vida fica mais fácil , com certeza ela fará sucesso.Com a internet o acesso e a transferência de informações é de uma facilidade fantástica ( apesar dos problemas de comunicação ). Podemos acessar qualquer informação , em qualquer lugar do planeta , basta ela estar na Internet. Podemos também transferir arquivos , e , é aqui que eu vou ancorar meu barquinho...A Transferência de arquivos significa copiar arquivos de um computador para outro. Através deste processo, você pode copiar arquivos de outro computador para seu computador e do seu computador para outro computador.Um dos principais métodos de transferência de arquivos na Internet usa o protocolo FTP - File Transfer Protocol; Vamos então dar um pequena introdução ao FTP: O FTP é o principal método de transferência de arquivos na INTERNET. Em princípio, a transferência de arquivos entre dois computadores, pressupõe que você tenha permissão de acesso (username) nos dois sistemas. No entanto, existe uma forma de contornar esta restrição. Através do uso do serviço de FTP anônimo, você poderá ter acesso a um número muito grande de computadores da INTERNET que possuem arquivos disponíveis para o público. São documentos , imagens , livros , etc.. Usamos o FTP quando temos as seguintes informações: • o endereço Internet do local onde o arquivo que você está interessado se encontra; • o diretório no qual o arquivo está armazenado neste sistema; • o nome do arquivo. Vejamos a seguir os principais comandos usados no FTP :ascii -Coloca o FTP no modo ASCII (usado quando a intenção for transferir arquivos de texto). binary Coloca o FTP no modo binário (usado quando a intenção for transferir arquivos que não sejam de texto). cd - Comando usado para mudar de diretório. Pode ser usado na forma 'cd nome_dir' (Exemplo: 'cd pub'), ou na forma 'cd nome_dir1/nome_dir2/nome_dir3' (Exemplo: 'cd pub/virus/pc'). cdup - Volta para o diretório imediatamente anterior ao que você se encontra. dir - Exibe uma listagem do conteúdo (arquivos e outros diretórios) do diretório onde o usuário se encontra. get - Transfere um arquivo para o seu computador. hash - Liga/desliga a exibição do caractere '#' durante a transferência. Isto permite que se veja o andamento do processo de transmissão de arquivo. help - Exibe uma lista com todos os comandos do FTP mget - Transfere para o seu computador um conjunto de arquivos. mput - Transfere um conjunto de arquivos do seu computador para o computador que está sendo acessado. put- Transfere um arquivo do seu computador para o computador que está sendo acessado. pwd - Informa para você em que diretório você se encontra na máquina que está sendo acessada. quit ou bye - Encerra o FTP. Aonde eu estou querendo chegar com toda esta estória de FTP ? Bem...No VB , como não poderia deixar de ser, podemos empregar esta mesma funcionalidade do FTP em transferir arquivos pela internet ou intranet , basta usar o controle Microsoft Internet Transfer Control ou INET.Eu já abordei os aspectos básicos do controle INET no artigo - Transferindo arquivos com o VB - por isso vou direto ao objetivo principal deste artigo - Como fazer a atualização de versões do seu programa VB pela internet ?Imagine você distribuir sua aplicação e dizer ao seu cliente que a atualização da versão é automática pela Internet (como fazem alguns programas - o Norton por exemplo). Você acha que não da conta ? Vamos mostrar que a coisa é mais simples do que parece...O que vamos atualizar ? Qual a lógica ?Quando você distribui uma aplicação Visual Basic - independente do instalador que você usou para gerar os discos de distribuição - a primeira instalação deverá ser efetuada de forma completa na máquina do seu cliente de forma a registrar as dll´s e as OCX´s que você usou no seu sistema.As atualizações posteriores poderão ser feitas pela distribuição do arquivo EXE que você gerar do seu sistema. (desde que você não inclua uma nova OCX ou DLL ). Então para atualizar a versão do sistema . basta o cliente copiar o arquivo EXE que você distribuiu sobrepondo o arquivo anterior.Para realizar a atualização automática de versão do seu sistema pela internet , você vai precisar disponibilizar em um servidor o seu arquivo EXE e incluir no seu sistema o código para que o programa faça o download do arquivo EXE presente no servidor.O download do arquivo EXE deverá ser efetuado toda vez que a versão do cliente for diferente da versão disponibilizada no servidor . O seu código vai ter que saber fazer isto . Como ? Uma forma simples de resolver este problema é disponibilizar junto com a nova versão um arquivo texto contendo o número da versão. Então você vai disponibilizar no servidor dois arquivos: o arquivo EXE e um arquivo texto(.TXT) com uma linha informando o número da versão. Em nosso exemplo vou usar um arquivo texto chamado Versao.txt que conterá uma única linha indicando a versão atual disponível.Criando o código para fazer o Download da nova versãoAgora vamos criar a função que você deverá incluir no seu sistema de forma a poder fazer o download das atualizações. Esta função vai receber dois argumentos : o Local e nome do arquivo temporário que será criando e o endereço URL e nome do arquivo que devera sofre o upload indicando a localização remota do arquivo. Aqui é que entra em ação o Microsoft Internet Transfer Control e você vai precisar incluir este componente no seu projeto para o código abaixo funcionar:

Public Function Baixa_Versao(LocalArquivo As String , LocalURLArquivo As String) As Boolean On error goto Baixa_erro Dim bt() As Byte Open LocalArquivo For Binary Access Write As #1 bt() = Inet1.OpenURL(LocalURLArquivo , icByteArray) Put #1, , bt() Close #1 Baixa_Versao=True Exit Function Baixa_erro: Msgbox "Ocorreu um erro durante a transferência do arquivo !", vbcritical Baixa_versao = False Close#1End Function

Para fazer o download de um arquivo chamado teste.txt presente no servidor geocities e salvá-lo no drive c:\teste com nome de baixa.dat você deverá invocar a função assim: call Baixa_Versao("c:\teste\baixa.dat","http://www.geocities.com/macoratti/teste.txt") Já temos uma problema resolvido ; vamos a outro problema : Quando o sistema deverá fazer o download ? Este problema tem duas soluções :1-) Você incrementa o código para verificar se existe uma conexão internet ativa e quando existir acionar o download 2-) Você deixa isto a cargo do seu cliente , implementando uma opção no menu para que o download seja feito.Verificando a versão e fazendo o DownloadAntes de fazer o download da versão propriamente dita , devemos baixar o arquivo versao.txt e verificar se a versão disponível é mais atual que a versão do sistema. Para fazer isto usamos a função Baixa_Versao que criamos acima.Vejamos agora o código da função que irá verificar a se a versão disponível é a mais atual:

Public Function Verifica() As Boolean Dim Atual as Boolean Dim Versao as String Dim Versao_Atual As string Versao_Atual = App.Major & App.Minor & App.Revision Atual = False if Baixa_Versao("c:\versao\atual.txt", "http://www.geocities.com/macoratti/versao.txt") Open "c:\versao\atual.txt" for Input As #1 Line Input #1 , Versao Close #1 Versao=trim(Versao) Kill "c:\versao\atual.txt" If Versao <> "" And Versao_Atual < Versao Then Atual = Baixa_Versao("c:\versao\TEMP.EXE", "http://www.geocities.com/macoratti/seu_programa.exe") End If End If Verifica = AtualEnd Function

A função Verifica faz o download do arquivo versao.txt , abre o arquivo e compara o número da versão informada com a versão atual do sistema.Se a versão informada não estiver vazia e se a versão atual for menor que a versão informada efetuamos o download do arquivo EXE disponibilizado.Creio que com essas informações você já sabe como fazer para atualizar seus aplicativos automaticamente e pela internet. Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá alissong,Desculpe a demora em responder, é que peguei uma folga no trabalho e preferi passar esse tempo longe do computador hehe.Não li o artigo ainda, to na correria aqui, assim que tiver um tempinho vou dar uma lida.Valeu, e assim que tiver pronto eu posto o código aqui sim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.