|
14 / 14 / 5
Регистрация: 05.10.2011
Сообщений: 223
|
|
Код для обновления своего .exe на новую версию12.09.2013, 21:27. Показов 3544. Ответов 8
Метки нет (Все метки)
Раскрываю сабж:
есть программа.exe, она в автозагрузке, она работает, допустим я пишу новую версию этой программы и теперь мне нужно обновить программу на новую версию .exe, я даю команду на обновление этой программе, а далее нужна идея как построить алгоритм обновления? варианта вижу 2: 1й, простой, вариант. (алгоритм и реализация мне ясна) Кликните здесь для просмотра всего текста
По команде обновиться, запускается другая программа updater.exe,
а обновляемая программа.ехе завершает работу, updater.exe удаляет программа.ехе, копирует новую версию программа.ехе, запускает ее, завершает работу, программа.ехе удаляет updater.exe 2й, непонятный мне в реализации, вариант. По команде обновиться, программа.ехе по хэндлу как-то должна себя переименовать в программа(old).ехе скопировать новую версию программа.ехе, удалить программа(old).ехе, ждать пока компьютер перезагрузится и с новой загрузкой ОС запустить уже свежую версию. по 2му варианту у меня вопрос: реализуемо ли такое? как реализовать? Не по теме:
0
|
|
| 12.09.2013, 21:27 | |
|
Ответы с готовыми решениями:
8
Как не отключая обновления запретить замену ядра на более новую версию?
Curllib для Си, не могу установить на новую версию MSVS |
|
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 4
|
||||||
| 12.09.2013, 23:44 | ||||||
|
2-й вар-т вполне реален, есть стандартные функции форточек - ShFileOperation, например (это для решения проблемы автоапдэйта при запуске системы). Только не надо проге саму себя переименовывать. Качаешь newversion, а далее... В Делфи - примерно так:
0
|
||||||
|
14 / 14 / 5
Регистрация: 05.10.2011
Сообщений: 223
|
|||||||
| 13.09.2013, 19:44 [ТС] | |||||||
|
ParanoiS, ShFileOperation() решает!
0
|
|||||||
|
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 4
|
||||||
| 06.10.2013, 20:39 | ||||||
|
Сорри, инета небыло.
На фига?? Ты не понял, ща объясню. Цитирую твой код с изменениями во флагах. Обрати внимание на FOF_RENAMEONCOLLISION.
Кста, а чё за ошибка? Возможно, конфликт ANSI/Unicode. Проверил?
0
|
||||||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
|
| 06.10.2013, 21:08 | |
|
0
|
|
|
14 / 14 / 5
Регистрация: 05.10.2011
Сообщений: 223
|
|
| 06.10.2013, 21:16 [ТС] | |
|
Остановился на варианте:
program.exe переименует файл с которого запустилась в program(old).exe копирует новую версию program.exe перезагрузка компа запускается обновленная program.exe ищет program(old).exe, если есть удаляет его все на api функциях просто и легко
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
|
||
| 06.10.2013, 21:33 | ||
|
Можно сделать так. Имеем, к примеру programma.exe, которая должна обновляться программой new.exe
По сигналу "обновиться" programma.exe делает следующее: 1) проверяет текущую директорию на наличие файла new.exe. Можно обойтись и без этого шага, но тогда нужно быть уверенным, что файл new.exe ЕСТЬ в текущей директории 2) если new.exe в текущей директории есть, тогда programma.exe должна запустить process.exe Последний может идти отдельным файлом. Но если хочется (я бы так и сделал) файл process.exe может идти секцией к programma.exe 3) programma.exe благополучно заканчивает свою работу. 4) process.exe делает следующее: переименовывает new.exe в programma.exe и самоубивается, перед этим уничтожив файл process.exe. Это тонкое место: на XP такой номер у меня проходил, как на других осях, не знаю. Впрочем, есть вариант: файл process.exe уничтожается программой programma.exe. То есть programma.exe запускается и первое, что делает- проверяет текущую директорию на наличие файла process.exe и в случае наличия последнего удаляет его. Всё. Добавлено через 1 минуту
0
|
||
|
Ушел с форума
|
||
| 06.10.2013, 21:49 | ||
|
достаточно прав, чтобы перезаписать себя в соответствующей папке ? Например, доступ в Program Files на запись, куда обычно ставятся программы, есть только у системы и администраторов. А ставить софт в другие папки, доступные на запись для юзеров - это значит создавать дыры в системе безопасности Windows.
0
|
||
|
14 / 14 / 5
Регистрация: 05.10.2011
Сообщений: 223
|
|||||||
| 07.10.2013, 11:48 [ТС] | |||||||
0
|
|||||||
| 07.10.2013, 11:48 | |
|
Помогаю со студенческими работами здесь
9
Как программно нажать клавишу F5 для обновления рабочего стола из своего приложения? Как сохранить exe версию для работы программы
Ln R5 на новую версию Ln R6 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|