Como fazer update online?

Então, lá vamos nós para mais uma ajuda dos universitários(Ou dos grandes mestres da arte de programação
)
O que eu quero fazer é um sistema de updates no meu programa. Ou seja, ele tenta achar na web e faz um update dos arquivos.
A idéia é que quando ele veja que tem updates, ele faça os updates e avise ao usuário que precisa fazer o update.
O que eu tava pensando em fazer era baixar os arquivos novos numa pasta temporaria e setar um flag no prog. O mesmo então mostra uma mensagem para o usuário.
Caso o usuário opte por fazer o update, o sistema então reboota, mas no destructor ele verifica o flag. Se setado ele manda um rodar um programa a parte e dai fecha.
O programa a parte apenas faz um wait de alguns segundos(para ter certeza que o programa principal morreu), verifica a pasta temp e faz um move de tudo que está lá para os seus respectivos lugares e starta novamente o sistema e morre.
O que acharam desta opção para fazer um update automatico sem a necessidade do usuário fazer algo? Vocês recomendam outra idéia/solução? Eu estou aceitando sugestões!
Obrigado,
Joao

O que eu quero fazer é um sistema de updates no meu programa. Ou seja, ele tenta achar na web e faz um update dos arquivos.
A idéia é que quando ele veja que tem updates, ele faça os updates e avise ao usuário que precisa fazer o update.
O que eu tava pensando em fazer era baixar os arquivos novos numa pasta temporaria e setar um flag no prog. O mesmo então mostra uma mensagem para o usuário.
Caso o usuário opte por fazer o update, o sistema então reboota, mas no destructor ele verifica o flag. Se setado ele manda um rodar um programa a parte e dai fecha.
O programa a parte apenas faz um wait de alguns segundos(para ter certeza que o programa principal morreu), verifica a pasta temp e faz um move de tudo que está lá para os seus respectivos lugares e starta novamente o sistema e morre.
O que acharam desta opção para fazer um update automatico sem a necessidade do usuário fazer algo? Vocês recomendam outra idéia/solução? Eu estou aceitando sugestões!

Obrigado,
Joao