На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела FAQ в группе разделов С++.
1. Раздел FAQ предназначен для публикации готовых статей.
2. Здесь нельзя задавать вопросы, для этого существуют соответствующие разделы:
Чистый С++
Visual C++ / MFC / WTL / WinApi
Borland C++ Builder
COM / DCOM / ActiveX / ATL
Сопутствующие вопросы
3. Внимание, все темы и сообщения в разделе премодерируются. Любое сообщение или тема будут видны остальным участникам только после одобрения модератора.
Модераторы: B.V., Qraizer
  
> Обновление программы
    Предлагаю сюда писать различные варианты обновления уже работающего ехе.
    Вот недавно найденный мною способ:
    ExpandedWrap disabled
      WCHAR BUF[MAX_PATH],NEW_FILE[MAX_PATH]={0};
      //получаем имя программы
      GetModuleFileName(GetModuleHandle(NULL),BUF,sizeof(BUF));
      wcscat(NEW_FILE,BUF);
      wcscat(NEW_FILE,TEXT(".bak"));
      MoveFileEx(BUF,NEW_FILE,MOVEFILE_REPLACE_EXISTING);
      //теперь мы можем спокойно создать файл с именем программы
       
      //скачиваем новую версию и сохраняем ее.
      DownloadAndSave(BUF,URL);
       
      //делаем перезапуск программы
      ShellExecute(NULL,TEXT("open"),BUF,TEXT("-updated"),NULL,SW_SHOW);
       
      //удаляем старую версию после перезагрузки
      MoveFileEx(NEW_FILE,NULL,MOVEFILE_REPLACE_EXISTING|MOVEFILE_DELAY_UNTIL_REBOOT);


    + Компактный код
    + Удобно обновлять переносные программы.

    - В общем случаи нужны права пользователя который делал установку программы.
    Проверено на: WinXP sp 3 x86, Win 7 x86

    Еще как вариант можно использовать планировщик задач, для запуска программы обновления.
    Можно установить службу которая будет обновлять программу.
    Сообщение отредактировано: XshStasX -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0206 ]   [ 15 queries used ]   [ Generated: 29.03.24, 09:50 GMT ]