<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; HTA: Хранение ресурсов в HTA]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5833&amp;type=atom" />
	<updated>2011-06-08T03:03:17Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5833</id>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49036#p49036" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Alexey пишет:</cite><blockquote><p>Пример прикрепил.</p></blockquote></div><p>Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-06-08T03:03:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49036#p49036</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49031#p49031" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Alexey пишет:</cite><blockquote><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>Alexey</strong>, спасибо. Открепляю.</p><p>А что рабочий пример недоступен? Может, проще его в zip и прямо к посту прикрепить, а?</p></blockquote></div><p>Сейчас из-за ограничивающего корпоративного прокси прикрепить пример к посту не могу. Вечером прикреплю к посту. Пример уже скачивается.</p></blockquote></div><p>Пример прикрепил.</p><div class="quotebox"><cite>JSman пишет:</cite><blockquote><p><strong>Alexey</strong>, а от 8 IE и выше разве указанный хак утратил свою функциональность?:) У меня в 8 все нормально отображается.</p></blockquote></div><p>У меня нет IE 8. Я тестил на IE9 и IE6. В IE9 хак не работает.</p>]]></content>
			<author>
				<name><![CDATA[Alexey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2696</uri>
			</author>
			<updated>2011-06-07T19:23:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49031#p49031</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49004#p49004" />
			<content type="html"><![CDATA[<p><strong>Alexey</strong>, а от 8 IE и выше разве указанный хак утратил свою функциональность?:) У меня в 8 все нормально отображается.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2011-06-07T06:56:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49004#p49004</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48984#p48984" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>Alexey</strong>, спасибо. Открепляю.</p><p>А что рабочий пример недоступен? Может, проще его в zip и прямо к посту прикрепить, а?</p></blockquote></div><p>Сейчас из-за ограничивающего корпоративного прокси прикрепить пример к посту не могу. Вечером прикреплю к посту. Пример уже скачивается.</p>]]></content>
			<author>
				<name><![CDATA[Alexey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2696</uri>
			</author>
			<updated>2011-06-06T09:53:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48984#p48984</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48983#p48983" />
			<content type="html"><![CDATA[<p><strong>Alexey</strong>, спасибо. Открепляю.</p><p>А что рабочий пример недоступен? Может, проще его в zip и прямо к посту прикрепить, а?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-06-06T09:46:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48983#p48983</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48982#p48982" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><span style="color: Green"><strong>Alexey</strong>, пример ещё не в Коллекции? Если нет — поместите его туда, пожалуйста.</span></p></blockquote></div><p><a href="http://forum.script-coding.com/viewtopic.php?pid=48981">Перенес.</a></p>]]></content>
			<author>
				<name><![CDATA[Alexey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2696</uri>
			</author>
			<updated>2011-06-06T09:34:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48982#p48982</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48974#p48974" />
			<content type="html"><![CDATA[<p><span style="color: Green"><strong>Alexey</strong>, пример ещё не в Коллекции? Если нет — поместите его туда, пожалуйста.</span></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-06-05T19:38:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48974#p48974</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48973#p48973" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>В общем, как я понял, если версия IE до 8, то отобрать картинки через протокол mhtml. Если от 8 и выше, то через base64. Верно?</p></blockquote></div><p>Да.Подменяем CSS стили. Если IE&lt;8 интерпретируем HTAфайл как mhtml файл и берем ресурсы из него(mhtml), если IE &gt;=8 то берем ресурсы в BASE64 и подкладываем их в модифицируемый стиль.(DATA Uri).</p>]]></content>
			<author>
				<name><![CDATA[Alexey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2696</uri>
			</author>
			<updated>2011-06-05T19:37:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48973#p48973</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48971#p48971" />
			<content type="html"><![CDATA[<p>В общем, как я понял, если версия IE до 8, то отобрать картинки через протокол mhtml. Если от 8 и выше, то через base64. Верно?</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2011-06-05T19:27:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48971#p48971</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48675#p48675" />
			<content type="html"><![CDATA[<p>Интересный вариант <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Я решал проблему примитивнее - при запуске проверял есть ли нужный файл в папке с HTA-шкой. Если файла нет, то сохранял его(из переменной где он был в Base64) туда и обновлял страницу.</p>]]></content>
			<author>
				<name><![CDATA[BeS Yara]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25643</uri>
			</author>
			<updated>2011-05-26T05:02:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48675#p48675</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48667#p48667" />
			<content type="html"><![CDATA[<p>Вот полностью рабочий <a href="http://prolez.net/test.7z">пример</a></p>]]></content>
			<author>
				<name><![CDATA[Alexey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2696</uri>
			</author>
			<updated>2011-05-25T14:28:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48667#p48667</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[HTA: Хранение ресурсов в HTA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48664#p48664" />
			<content type="html"><![CDATA[<p>Возникла необходимость хранить картинки в теле HTA документа. Проблем для систем с Internet Explorer &gt;=8 вообще не возникает:<br /></p><div class="codebox"><pre><code>.mystyle{
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAwklEQVRYhe3XXQqDMBhE0dtsIKvNwrOC+mIhTfNrlAzlm0eR4ShomFcI4U2WGGN+6Sfe++49d/S5O8tKWe37AqrhIAEq4uAEquIAnDIOCh/JStkTD9sE7sZB4w0q4KACVMFBAaiEgwyohoMEqIiDE6iKA3DKOBj4Uc+UPfGwQ8Cdx2EXuPusbgJ346ABVMBBBaiCA9sktknmyj6xTXK1zDbJalkrtklGykqxTTJTlsY2yZUysE2yVjYa2yS1sl7+cpMcegPyrqBRcaoAAAAASUVORK5CYIL=);
}</code></pre></div><p>В системах с Internet Explorer 6 и 7 тоже можно с помощью <a href="http://www.phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under/">mhtml css hack</a>.</p><p>Но хранить одни и те же ресурсы для разных IE как то не комильфо. <br />Для решения этой задачи я сделал следующее:<br />1) завернул ресурсы в тег &lt;!-- &#039;--&gt; в начале HTA файла.</p><div class="codebox"><pre><code>&lt;!--
/*
Content-Type: multipart/related; boundary=&quot;_ANY_STRING_WILL_DO_AS_A_SEPARATOR&quot;

--_ANY_STRING_WILL_DO_AS_A_SEPARATOR
Content-Location:background
Content-Transfer-Encoding:base64

iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAwklEQVRYhe3XXQqDMBhE0dtsIKvNwrOC+mIhTfNrlAzlm0eR4ShomFcI4U2WGGN+6Sfe++49d/S5O8tKWe37AqrhIAEq4uAEquIAnDIOCh/JStkTD9sE7sZB4w0q4KACVMFBAaiEgwyohoMEqIiDE6iKA3DKOBj4Uc+UPfGwQ8Cdx2EXuPusbgJ346ABVMBBBaiCA9sktknmyj6xTXK1zDbJalkrtklGykqxTTJTlsY2yZUysE2yVjYa2yS1sl7+cpMcegPyrqBRcaoAAAAASUVORK5CYIL=

--_ANY_STRING_WILL_DO_AS_A_SEPARATOR
Content-Location:loading_bar
Content-Transfer-Encoding:base64

R0lGODlh3AATAPQAAP///wAAA.....

--_ANY_STRING_WILL_DO_AS_A_SEPARATOR--
*/
&#039;--&gt;
&lt;html&gt;...</code></pre></div><p>2)Прописал в стиле HTA файла мою будущую картинку такого вот вида идентификатором<br /></p><div class="codebox"><pre><code>&lt;style type=&quot;text/css&quot;&gt;
.hiddenlayer{
    background:#666666 50% 50% repeat url(!BASE64-background!);
}</code></pre></div><p>3)При загрузке HTA файла вызываю функцию, модифицирующую cssText для разных версий Internet Explorer<br /></p><div class="codebox"><pre><code>Function ShowBASE64Images
    Set fso = CreateObject(&quot;Scripting.Filesystemobject&quot;)                
    file_text=fso.OpenTextFile(Replace(document.url,&quot;file://&quot;,&quot;&quot;),1).readall &#039;it&#039;s my own contents
    Set fso = Nothing
    Set RExp = CreateObject(&quot;VBScript.RegExp&quot;)
    RExp.Global=True
    RExp.Pattern=&quot;!BASE64-.*!&quot;
    For i=0 To document.styleSheets.length-1        
        For Each base64record In RExp.Execute(document.styleSheets(i).cssText) &#039;iterate each !BASE64-.*! pattern
            base64id=Replace(Replace(base64record,&quot;!&quot;,&quot;&quot;),&quot;BASE64-&quot;,&quot;&quot;)
            If GetIEVersion&lt;8 Then 
                document.styleSheets(i).cssText=Replace(document.styleSheets(i).cssText,base64record,&quot;mhtml:&quot;&amp;document.URLUnencoded&amp;&quot;!&quot;&amp;base64id)&#039;for ie=6=7 set pattern to mhtml:file...!id
            Else                
                RExp.Pattern=&quot;Content\-Location\:&quot;&amp;base64id&amp;&quot;(.*\n)+?\-&quot; &#039;get only this id section
                For Each base64my_record In RExp.Execute(file_text)
                    RExp.Pattern=&quot;Content\-Location\:&quot;&amp;base64id&amp;&quot;(.*\n)+?\s&quot; &#039;will replace this data
                    result=RExp.Replace(base64my_record,&quot;&quot;) &#039;replace this data
                    result=Left(result,Len(result)-1) &#039;cut last symbols
                    RExp.Pattern=&quot;\n&quot;
                    result=RExp.Replace(result,&quot;&quot;)&#039;clear \r\n
                    result=&quot;data:image/png;base64,&quot;&amp;Trim(result)&amp;&quot;);&quot; &#039;trim all data
                Next                
                document.styleSheets(i).cssText=Replace(document.styleSheets(i).cssText,base64record,result)&#039;set new cssText
            End If
        Next    
    Next
    Set RExp = Nothing
End function

function GetIEVersion
    Set WshShell = CreateObject(&quot;Wscript.Shell&quot;)
    GetIEVersion=Left(WshShell.RegRead(&quot;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version&quot;),1)
End Function</code></pre></div><p>В результате чего ресурсы хранятся в файле один раз и отображаются во всех версиях IE.</p>]]></content>
			<author>
				<name><![CDATA[Alexey]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2696</uri>
			</author>
			<updated>2011-05-25T14:04:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48664#p48664</id>
		</entry>
</feed>
