Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 04:29   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос Как перекачать ехе файл программы?

Т.е если запускаю софт нажимаю кнопку "обновить" и что бы софт (ехе файл) автоматом перекачивался и сохранялся в ту же папку что и запущенная версия, как такое реализовать? Спасибо
FleXik вне форума Ответить с цитированием
Старый 23.12.2013, 05:26   #2
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

CopyFile(paramstr(0), ExtractFilePath(paramstr(0))+'NewFi le.exe', false);
Перекачался откуда?
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 23.12.2013, 05:29   #3
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Сообщение от alextrof94 Посмотреть сообщение
CopyFile(paramstr(0), ExtractFilePath(paramstr(0))+'NewFi le.exe', false);
Перекачался откуда?
с сайта......... SaveFromStream функция нужна? или можно чем-то другим выкачать .ехе файл?
FleXik вне форума Ответить с цитированием
Старый 23.12.2013, 05:38   #4
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Это смотря куда закачиваешь, и с этого и надо было начинать.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 23.12.2013, 05:45   #5
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
Сообщение от alextrof94 Посмотреть сообщение
Это смотря куда закачиваешь, и с этого и надо было начинать.
с сайта на компьютер с заменой нужно, новый скачанный .ехе файл должен заменяться на запущенный (с которого и будет качаться этот новый .ехе файл), должно качаться в ту же папку с которой и запущен старый .ехе файл (с которого будет качаться новый)
FleXik вне форума Ответить с цитированием
Старый 23.12.2013, 05:59   #6
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Хорошо заданный вопрос - половина ответа. Тут же вопрос задан так, как будто тебя там режут и ты между делом программируешь.
На сервере есть файл, ты его скачиваешь и заменяешь им тот, что запущен.
Верно?
Это делается либо хитроумным кодом, который бесплатно почти никто писать не будет, либо компонентом, который ты можешь найти в интернете по запросу "Delphi AutoUpdate Component".
Код:
Если хочешь сам писать, самый простой способ:
0 Запуск основной программы
1 Смотришь, появилась ли новая версия на сервере,
2 Если да, то качаешь ее и сохраняешь в той же директории под именем+'New'
3 Запускаешь скачанную копию, а эту удаляешь
 0 Запуск скачанной программы
 1 Смотришь название запущенной программы, если есть приписка 'New', то удаляешь файл без приписки и копируешь программу функцией, которую я показал выше.
 2 Работаешь и завершаешь программу как обычно
  0 Запуск скачанной и помещенной на место программы
  1 Смотришь, есть ли в папке файл с припиской New
  2 Удаляешь если есть.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 23.12.2013, 06:34   #7
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

alextrof94, я и сам могу написать но я не знаю как это правильно реализуется
FleXik вне форума Ответить с цитированием
Старый 23.12.2013, 08:12   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Да самый простой вариант это написать отдельный Updater.exe например и всё. Который будет скачивать, закрывать основную прогу, заменять файл и запускать снова обновлённую версию, а сам закрываться.
FaTaL вне форума Ответить с цитированием
Старый 23.12.2013, 09:09   #9
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Да самый простой вариант это написать отдельный Updater.exe например и всё. Который будет скачивать, закрывать основную прогу, заменять файл и запускать снова обновлённую версию, а сам закрываться.
поддерживаю, так же реализую при необходимости
Halogen вне форума Ответить с цитированием
Старый 23.12.2013, 10:24   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Т.е если запускаю софт нажимаю кнопку "обновить" и что бы софт (ехе файл) автоматом перекачивался и сохранялся в ту же папку что и запущенная версия, как такое реализовать? Спасибо
Качаешь во временной файл(куда угодно, главное - чтобы названия были разные).
Далее такой финт, запускаешь cmd файл:
Код:
@echo off
SET PROC="MYSYPEREXE.EXE"
goto Update
:check
cls
echo Process %PROC% is still running...
:Update
tasklist /FI "IMAGENAME eq %PROC%" /NH | findstr /i "%PROC%">nul
if %errorLevel% == 0 goto :check
echo Removing old file...
del <Путь к старому файлу> /q
move <Путь к новому файлу> <Путь к старому файлу>
echo Update done.
start <Путь к новому файлу>
Нормально закрываешь своё ПО(Не Terminate).
Батник будет ждать, пока старый процесс не закроется.
Затем удалит старый файл, переместит на его место новый, и запустит.

Только мозг включайте, когда копировать будите.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать ехе файл edik12 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 29.03.2011 00:58
Как сделать ехе-файл? gagarin0 C++ Builder 7 13.10.2010 20:44
Как сделать ехе файл SL1CK Свободное общение 15 15.06.2009 08:22
как скопировать *ехе файл RAVAL)) Общие вопросы Delphi 2 05.03.2009 08:34
Кто возьмется перекачать файл txt в xls за вознаграждение?? himera Microsoft Office Access 3 14.02.2009 13:09