![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обновить программу? [D7, WinXP]
SANEK_10289 © (2005-12-22 21:50:00)Здравствуйте, подскажите пожалуйста,
как во время выполнения приложения проверить есть ли более новая версия на другом компьютере в локальной сети, и если есть то обновить. Незнаю как обновить программу, насколько мне известно выполняющееся приложение не даст же себя удалить... Подскажите пожалуйста, каким способом можно решить данную проблему?
AnSi_Sr (2005-12-23 13:51:00) [1]Стандартное решение данной проблемы - проверка обновления при запуске.
По крайней мере, я его видел.
Как было указано выше (или используя TJCLFileInfo - из JEDI Code Library) получаем версию запущенной программы. Затем смотрим инишник или реестр (как захотите, у нас в папочке программы инишник хранится), находим путь до того места, где лежит обновление. Там смотрим версию обновления - тоже как хотите, у нас для этой цели тоже ini-файл используется. Если версия более новая, запускаем обновление через CreateProcess, потом завершаем работу программы.
Сейчас политика администрирования такова, что пользователи не имеют админских привелегий, поэтому от использования автообновления пришлось отказаться.
DrPass (2005-12-22 22:56:00) [2]На вкладке Version Info. По ней и сравнивай. Есть специальные функции - GetFileVersionInfoSize, GetFileVersionInfo, VerQueryValue
SANEK_10289 (2005-12-22 22:02:00) [3]А как тогда сравнить версии файлов?
Ведь наверное если размеры разные то необязательно, что версия файла новее.
В свойствах проекта, по моему на вкладке Compile можно менять свойство Build. Можно ли как-то по нему сравнивать версии файлов?
DrPass (2005-12-22 21:51:00) [4]
> насколько мне известно выполняющееся приложение не даст
> же себя удалить...
Не даст. Но можно переименовать, скопировать новый файл, запустить его, закрыть себя, а он удалит старый.