<?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=409611&amp;view=findpost&amp;p=3689404</guid>
        <pubDate>Tue, 18 Oct 2016 19:06:02 +0000</pubDate>
        <title>[InnoSetup] Скачать файл через URLDownloadToFileA</title>
        <link>https://forum.sources.ru/index.php?showtopic=409611&amp;view=findpost&amp;p=3689404</link>
        <description><![CDATA[Profi: Как вариант, можно писать <strong class='tag-b'>Response</strong> в лог. Чему он может быть равен - <a class='tag-url' href='https://msdn.microsoft.com/en-us/library/ms775123(v=vs.85).aspx' target='_blank'>тут</a>, а расшифровка констант <a class='tag-url' href='https://msdn.microsoft.com/en-us/library/windows/desktop/aa378137(v=vs.85).aspx' target='_blank'>здесь</a> и <a class='tag-url' href='https://msdn.microsoft.com/en-us/library/ms775145(v=vs.85).aspx' target='_blank'>здесь</a>.]]></description>
        <author>Profi</author>
        <category>Инсталляторы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=409611&amp;view=findpost&amp;p=3685772</guid>
        <pubDate>Sat, 24 Sep 2016 15:08:33 +0000</pubDate>
        <title>[InnoSetup] Скачать файл через URLDownloadToFileA</title>
        <link>https://forum.sources.ru/index.php?showtopic=409611&amp;view=findpost&amp;p=3685772</link>
        <description><![CDATA[Виталь: Доброго времени суток.<br>
Когда-то давно реализовал в процессе установки закачку нужного файла с сервера и размещение его в папке с установленной программой через функцию<br>
URLDownloadToFileA (URLMON.DLL). После многочисленных жалоб обнаружил что файл не скачивается примерно в случае 50-60% установок.<br>
Просто не уходит запрос (именно по количеству дошедших до сервера сообщений об успещной установке и запросе файла идет статистика ошибки).<br>
Функция существует во всех версиях винды начиная с Windows XP. К сожалению, конечные пользователи не компетентны в этих вопросах, а у меня баг почти не проявляется: раз в 5-6 установок может и не скачаться. Есть минимум 1 пользователь, у которого после 5-10 установок (точно не сказал) ни разу файл не скачался.<br>
<br>
Скачиваемый файл - текстовый. Дело 100% не в сервере - он отдает файл всегда, это не нагрузка. Сервер смотрит в сеть напрямую, блокировка &quot;ботов&quot; сервисами типа CloudFlare исключена.<br>
Код скрипта InnoSetup<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">function UrlDownloadToFile(Caller: cardinal; URL: PAnsiChar; FileName: PAnsiChar; Reserved: DWORD; StatusCB: cardinal): Longword; external &#39;URLDownloadToFileA@URLMON.DLL stdcall&#39;;</div><div class="code_line">function GetTickCount: DWORD; external &#39;GetTickCount@kernel32.dll stdcall&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure CurPageChanged(CurPageID: Integer);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Response: Longword;</div><div class="code_line">&nbsp;&nbsp;url : PAnsiChar;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; url:=&#39;http://mydomain.com/_installed.php?v=....&#39;; //сливается информация о версии и языке ОС, билд программы, защита от кеширования</div><div class="code_line">&nbsp;&nbsp; &nbsp; Response:=UrlDownloadToFile(0, url, PAnsiChar(ExpandConstant(&#39;{tmp}&#39;) + &#39;installed.log&#39;), 0, 0); //это само отписывание в лог</div><div class="code_line">&nbsp;&nbsp; &nbsp; WizardForm.NextButton.Enabled := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp; url:=&#39;http://mydomain.com/_latestdata.php&amp;nocache=&#39;+inttostr(GetTickCount);</div><div class="code_line">&nbsp;&nbsp; &nbsp; Response:=UrlDownloadToFile(0, url, PAnsiChar(ExpandConstant(&#39;{app}&#39;) + &#39;\data.db&#39;), 0, 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; WizardForm.NextButton.Enabled := true;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<strong class='tag-b'>Есть идеи, почему это может происходить?</strong>]]></description>
        <author>Виталь</author>
        <category>Инсталляторы</category>
      </item>
	
      </channel>
      </rss>
	