Автообновление программы - VB
Формулировка задачи:
Коллеги прошу помочь.
Два вопроса, оба касаются механизма автообновления программы:
Вопрос №1
Есть программа №1. (Loader), который в свою очередь загружает программу №2 (Main). При этом №1 (Loader) проверяет наличие в памяти программы №2 (Main). Если есть, то отказ если нет, то грузит ее и выгружается сам. В какой то момент времени программе №2 (Main) приходится загрузить программу №1. (Loader) и выгрузится самой из памяти. Программа №1. (Loader), естественно в момент загрузки видит в памяти еще не выгруженную программу №2. (Main) и сообщает, что программа в памяти и не грузит ее. Решаю это запуском программы №1 из программы №2 путем формирования из программы №2 CMD файла. Вопрос как обойтись без CMD? Для чего все так сложно? Не понимаю как без Лоадера организовать проверку "загружена ли программа", так как в момент запуска ПРОГРАММА видит сама себя в памяти.Вопрос №2
Как перезагрузить программу из самой программы. Вариант Unload? а затем Show не дает результата?Решение задачи: «Автообновление программы»
textual
Листинг программы
Private Sub Command1_Click() ' запуск процедуры обновления Name App.Path & "\Name.exe" As App.Path & "\Name.old" 'Переименовываем старый файл If Dir(App.Path & "\Name.old") <> "" Then ' Если переименовали успешно 'Тут ваш код или вызов процедуры, котрый скачивает обновление 'если скачали-> тут могут быть проверки, что файл в полном обьеме, то запускаем обновленный файл Shell App.Path & "\Name.exe" 'и убиваем себя End ' или другим, более цивилизованным способом, предварительно сохранив старые настройки, если надо Else MsgBox "Обновление невозможно." End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д