Live Update...
Preciso desenvolver um sistema que faça uma atualização automática do meu sistema via internet.
alguem tem alguma dica... exemplo... trabalho a algum tempo com Delphi mas nunca fiz nada usando ferramentas para internet. :?:
obrigado.
alguem tem alguma dica... exemplo... trabalho a algum tempo com Delphi mas nunca fiz nada usando ferramentas para internet. :?:
obrigado.
Josinaldo
Curtidas 0
Respostas
Edilcimar
21/12/2003
apesar de não trabalhar com este tipo de atualização aí vai uma dica que funciona, coloque o executável disponível, verifique a data do teu executável e a data do executável do cliente, se a tua for mais recente feche o arquivo do cliente e baixe a versão disponível
GOSTEI 0
Nigro
21/12/2003
Ou você pode fazer um executável a parte para isso de atualização, apenas pedindo para o clicar em algum botão e baixar o novo executével.
GOSTEI 0
Tnaires
21/12/2003
A dica do edilcimar é ótima para programas trabalhando em rede. Se vc fizer alguma modificação no sistema, não precisa sair copiando o executável de máquina em máquina no ambiente de rede.
GOSTEI 0
Nigro
21/12/2003
Para você não ter que copiar cada executável por estação você podee colocar um .bat que copie o executável do servidor para a estação, pois nem todos os clientes possuem banda larga para baixar o executável na sua estação, nem todas as estações possuem acesso a internet, alguns administradores de rede não deixam as estação fazerem grandes downloads.
GOSTEI 0
Turbo Drive
21/12/2003
legal a ideia de todos ai eu pergunto o executvel e facinho o o banco de dados com novas tabelas tambem eh facil mas novos campos em tabelas ja existentes com fazemos no meu caso trabalho com Mysql qdo crio os campos nas tabelas existentes os dados que tinham somem.Sera que so estou complicando o tema
Me coloco a disposição de todos
Me coloco a disposição de todos
GOSTEI 0
Tchoninho
21/12/2003
Caso você queira fazer como os programas de anti-vírus baixar da internet arquivos para atualização este dica por lhe ser util
Pegue Arquivo da Net
Crie uma Aplicação Delphi que faça downloads de arquivos da Internet; Adicione um auto-update para seus programas.
Se você tem costume de atualizar seus programas com novas versões de DLLs, Packages e outros mais, e isso te dar um certo trabalho além de ocupar grande parte do seu tempo com atualizações, você pode fazer isso facilmente pela Internet criando uma aplicação no Delphi que faça essa atualização automaticamente. A Internet provê agora uma maneira muito fácil para realizar está tarefa. Adicionando uma opção de auto-atualização para suas aplicações pode ser uma boa maneira de manter suas aplicações Delphi atualizadas.
Veremos como criar a parte mais importante de código de qualquer aplicação FTP.
O Delphi nos dá acesso completo para a WinInet API (wininet.pas) com o qual nós podemos usa-la para conectar e receber arquivos de um site Web que use Hypertext Transfer Protocol (http) ou File Transfer Protocol (FTP). Por exemplo, nós podemos usar as funções de WinInet API para: adicionar um browser de FTP para uma aplicação, criar uma aplicação que baixe arquivos automaticamente de um FTP público ou procure em um site da Internet para localizar o que deseja.
Para começarmos vamos criar a nossa função, como é mostrado abaixo:
GetInetFile function
uses Wininet;function GetInetFile(const fileURL, FileName: String): boolean;const BufferSize = 1024;var hSession, hURL: HInternet; Buffer: array[1..BufferSize] of Byte; BufferLen: DWORD; f: File; sAppName: string;begin Result:=False; sAppName := ExtractFileName(Application.ExeName); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(fileURL), nil,0,0,0); try AssignFile(f, FileName); Rewrite(f,1); repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); BlockWrite(f, Buffer, BufferLen) until BufferLen = 0; CloseFile(f); Result:=True; finally InternetCloseHandle(hURL) end finally InternetCloseHandle(hSession) endend;
Nota: Para provê um visual mais atraente para o usuário, você pode adicionar uma linha de comando como (FlashWindows(Application.Handle,True) no bloco repeat/until. O FlashWindows API da um brilho no caption de sua aplicação na barra de tarefa.
Como usar:
Para chamar a função GetInetFile você pode usar o bloco de código abaixo:
var FileOnNet, LocalFileName: stringbegin FileOnNet:= ´http://seuendereconainternet/nomedoarquivo.zip´; LocalFileName:=´Nomedoarquivobaixado.zip´ if GetInetFile(FileOnNet,LocalFileName)=True then ShowMessage(´Download successful´) else ShowMessage(´Error in file download´)end;
Este código pegará o arquivo “nomedoarquivo.zip” deste site, irá carrega-lo, e salva-lo como “Nomearquivobaixado.zip”.
Nota: Dependendo de qual versão do Delphi você tem, você pode encontrar vários componentes na paleta Internet da VCL que são projetados para facilitar a tarefa de habilitar suas aplicações para internet. Para um exemplo de um componente FTP de uma olhado no componente TNMFTP na paleta FastNet da VCL do Delphi.
Eu ainda não a testei mas acho que funciona direitinho.
Pegue Arquivo da Net
Crie uma Aplicação Delphi que faça downloads de arquivos da Internet; Adicione um auto-update para seus programas.
Se você tem costume de atualizar seus programas com novas versões de DLLs, Packages e outros mais, e isso te dar um certo trabalho além de ocupar grande parte do seu tempo com atualizações, você pode fazer isso facilmente pela Internet criando uma aplicação no Delphi que faça essa atualização automaticamente. A Internet provê agora uma maneira muito fácil para realizar está tarefa. Adicionando uma opção de auto-atualização para suas aplicações pode ser uma boa maneira de manter suas aplicações Delphi atualizadas.
Veremos como criar a parte mais importante de código de qualquer aplicação FTP.
O Delphi nos dá acesso completo para a WinInet API (wininet.pas) com o qual nós podemos usa-la para conectar e receber arquivos de um site Web que use Hypertext Transfer Protocol (http) ou File Transfer Protocol (FTP). Por exemplo, nós podemos usar as funções de WinInet API para: adicionar um browser de FTP para uma aplicação, criar uma aplicação que baixe arquivos automaticamente de um FTP público ou procure em um site da Internet para localizar o que deseja.
Para começarmos vamos criar a nossa função, como é mostrado abaixo:
GetInetFile function
uses Wininet;function GetInetFile(const fileURL, FileName: String): boolean;const BufferSize = 1024;var hSession, hURL: HInternet; Buffer: array[1..BufferSize] of Byte; BufferLen: DWORD; f: File; sAppName: string;begin Result:=False; sAppName := ExtractFileName(Application.ExeName); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(fileURL), nil,0,0,0); try AssignFile(f, FileName); Rewrite(f,1); repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); BlockWrite(f, Buffer, BufferLen) until BufferLen = 0; CloseFile(f); Result:=True; finally InternetCloseHandle(hURL) end finally InternetCloseHandle(hSession) endend;
Nota: Para provê um visual mais atraente para o usuário, você pode adicionar uma linha de comando como (FlashWindows(Application.Handle,True) no bloco repeat/until. O FlashWindows API da um brilho no caption de sua aplicação na barra de tarefa.
Como usar:
Para chamar a função GetInetFile você pode usar o bloco de código abaixo:
var FileOnNet, LocalFileName: stringbegin FileOnNet:= ´http://seuendereconainternet/nomedoarquivo.zip´; LocalFileName:=´Nomedoarquivobaixado.zip´ if GetInetFile(FileOnNet,LocalFileName)=True then ShowMessage(´Download successful´) else ShowMessage(´Error in file download´)end;
Este código pegará o arquivo “nomedoarquivo.zip” deste site, irá carrega-lo, e salva-lo como “Nomearquivobaixado.zip”.
Nota: Dependendo de qual versão do Delphi você tem, você pode encontrar vários componentes na paleta Internet da VCL que são projetados para facilitar a tarefa de habilitar suas aplicações para internet. Para um exemplo de um componente FTP de uma olhado no componente TNMFTP na paleta FastNet da VCL do Delphi.
Eu ainda não a testei mas acho que funciona direitinho.
GOSTEI 0
Bacalhau
21/12/2003
Este fórum é incrível. Estava à procura desta transferência de ficheiros da Internet e encontrei.
tchoninho esta resposta é só para agradecer. Muito obrigado.
tchoninho esta resposta é só para agradecer. Muito obrigado.
GOSTEI 0
Gmsilva
21/12/2003
Eu acabei de desenvolver uma aplicação e desenvolvi um programa a parte para live update.
Ele consiste em acessar meu servidor FTP abrir um aquivo que contem o numero da ultima versão e se o usuario esta licenciado para fazer a atualização (usuario que não paga não faz), e baixa o executavel zipado e descompacta o mesmo.
Para isto eu preciso usar os componentes de FTP e ZIP (zipmaster), e esta funcionando sem problema.
O único incoveniente é que niguem pode estar usando a aplicação pq se não da erro ao descompactar o executavel, eu sou contra um executavel para cada estação.
Ele consiste em acessar meu servidor FTP abrir um aquivo que contem o numero da ultima versão e se o usuario esta licenciado para fazer a atualização (usuario que não paga não faz), e baixa o executavel zipado e descompacta o mesmo.
Para isto eu preciso usar os componentes de FTP e ZIP (zipmaster), e esta funcionando sem problema.
O único incoveniente é que niguem pode estar usando a aplicação pq se não da erro ao descompactar o executavel, eu sou contra um executavel para cada estação.
GOSTEI 0