Eu recomendaria voce repensar a sua ideia.
Sobre baixar uma nova versão pela internet, o que pode ser feito é voce gerar no seu programa no usuario uma string encriptografada com as informacoes:
NomeDoPrograma,VersaoAtual,NumeroDeSerieDaAplicacao,NomeDoUsuarioLogadoNaMaquina,MacAddressDaPlacaDeRede. por simples requisicao http simples. O seu servidor Web recebe essa String, decodifica atravez de uma chave sua, valida se o usuario tem ou nao permissao de receber o arquivo (consulta a um banco de dados no servidor por exemplo) Se liberado, a MaquinaRecebe uma string cabeluda codificada (eh claro) com o link para baixar o arquivo, Este link deveria ser criado na hora tipo:
www.minhaempresa.com.br/downloadid=ABCD ... PQAVESTRUZ que seu servidor web vai pegar e checar no bco de dados se foi baixado ou nao. Se nao foi, libera o arquivo, se foi baixado, impede o download.
Para se fazer isso em delphi, vejamos, é uma requisicao e resposta HTTP simples que pode ser usada com componentes da paleta Indy.
Downloading a web page into a variable
The easiest way is to use the open-source IdHTTP component provided with Delphi 6+ and located in the Indy Clients tab. Note that adding this component in a form adds the following units to the project: IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient:
- Código: Selecionar todos
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IdHTTP1.Get('http://yahoo.com'));
end;
do link:
http://www.fredshack.com/docs/indy.html
tem esta opcao aqui de https, nunca testei e nao tenho vontade de fazer
tem esta opcao aqui tb:
http://www.tek-tips.com/viewthread.cfm?qid=419856
EM TEMPO: eu nao programo mais em delphi, por isso nao poderei dar muita ajuda caso o codigo nao funcione da maneira esperada. Estou me especializando em linux e php e servidores web.
A parte de consultar uma base de dados no servidor, gerar o ID, etc vc ve no seu servidor web, se vai fazer com php+mySQL (recomendo) ou CGI ou sinais de fumaça, vc escolhe o que for mais facil.
se quiser papear sobre a parte do servidor em php+mysql eu posso tentar te ajudar melhor.