<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=312479&amp;view=findpost&amp;p=2687487</guid>
        <pubDate>Fri, 03 Sep 2010 16:11:25 +0000</pubDate>
        <title>Обновление программы</title>
        <link>https://forum.sources.ru/index.php?showtopic=312479&amp;view=findpost&amp;p=2687487</link>
        <description><![CDATA[XshStasX: Предлагаю сюда писать различные варианты обновления уже работающего ехе.<br>
Вот  недавно найденный мною способ:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">WCHAR BUF[MAX_PATH],NEW_FILE[MAX_PATH]={0};</div><div class="code_line">//получаем имя программы</div><div class="code_line">GetModuleFileName(GetModuleHandle(NULL),BUF,sizeof(BUF));</div><div class="code_line">wcscat(NEW_FILE,BUF);</div><div class="code_line">wcscat(NEW_FILE,TEXT(&quot;.bak&quot;));</div><div class="code_line">MoveFileEx(BUF,NEW_FILE,MOVEFILE_REPLACE_EXISTING);</div><div class="code_line">//теперь мы можем спокойно создать файл с именем программы</div><div class="code_line">&nbsp;</div><div class="code_line">//скачиваем новую версию и сохраняем ее.</div><div class="code_line">DownloadAndSave(BUF,URL); </div><div class="code_line">&nbsp;</div><div class="code_line">//делаем перезапуск программы</div><div class="code_line">ShellExecute(NULL,TEXT(&quot;open&quot;),BUF,TEXT(&quot;-updated&quot;),NULL,SW_SHOW);</div><div class="code_line">&nbsp;</div><div class="code_line">//удаляем старую версию после перезагрузки</div><div class="code_line">MoveFileEx(NEW_FILE,NULL,MOVEFILE_REPLACE_EXISTING|MOVEFILE_DELAY_UNTIL_REBOOT);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
+ Компактный код<br>
+ Удобно обновлять переносные программы.<br>
<br>
- В общем случаи нужны права пользователя который делал установку программы.<br>
Проверено на: WinXP sp 3 x86, Win 7 x86<br>
<br>
Еще как вариант можно использовать планировщик задач, для запуска программы обновления.<br>
Можно установить службу которая будет обновлять программу.]]></description>
        <author>XshStasX</author>
        <category>C/C++ FAQ</category>
      </item>
	
      </channel>
      </rss>
	