|
14 / 14 / 5
Регистрация: 05.10.2011
Сообщений: 223
|
|
Код для обновления своего .exe на новую версию12.09.2013, 21:27. Показов 3600. Ответов 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,705
|
|
| 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,705
|
||
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|