Лично я создаю свой собственный механизм для запуска процесса самообновления, когда метка времени моего приложения не синхронизирована с сервером. Не слишком сложно, но это не простая задача.
Кстати, для Delphi вы можете воспользоваться какой-нибудь сторонней справкой:
http://www.tmssoftware.com/site/wupdate.asp
ОБНОВЛЕНИЕ:
Для моей реализации:
MyApp.EXE будет работать в 3 различных режимах
MyApp.EXE без каких-либо аргументов. Это обычно запускает приложение.
1.1 Самое первое, что он делает, - проверяет время своего файла на сервере.
1.2 Если требуется обновление, он загрузит обновленный файл в файл с именем «MyApp-YYYY-MM-DD-HH-MM-SS.exe»
1.3 Затем вызывается «MyApp-YYYY-MM-DD-HH-MM-SS.exe» с аргументом команды
MyApp-YYYY-MM-DD-HH-MM-SS.exe --update MyApp.EXE
1.4 Завершить работу приложения.
1.5 Если обновление не требуется, приложение будет нормально запускаться с 1.1
MyApp.EXE - обновление "FILENAME".
2.1 Попробуйте копировать себя в "FILENAME" каждые 100 мсек до успеха.
2.2 Вызвать «FILENAME», когда он успешен
2.3 Вызвать «FILNAME - удалить MyApp-YYYY-MM-DD-HH-MM-SS.exe» для удаления самого себя.
2,4 Завершить
MyApp.EXE - удалить "FILENAME"
3.1 Попробуйте удалять файл «FILENAME» каждые 500 мсек до успеха.
3,2 Завершить
Я уже использую эту схему для своего приложения в течение 7 лет, и она работает хорошо. Отладка может быть довольно болезненной, если что-то пойдет не так, так как шаги включают много процессов. Я предлагаю вам сделать много записей трассировки, чтобы упростить поиск неисправностей.
Удачи