<?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=177225&amp;view=findpost&amp;p=1499671</guid>
        <pubDate>Tue, 27 Mar 2007 06:39:27 +0000</pubDate>
        <title>Как извлечь историю посещений IE?</title>
        <link>https://forum.sources.ru/index.php?showtopic=177225&amp;view=findpost&amp;p=1499671</link>
        <description><![CDATA[Rouse_: Ну примерно так:<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">////////////////////////////////////////////////////////////////////////////////</div><div class="code_line">//</div><div class="code_line">// &nbsp;****************************************************************************</div><div class="code_line">// &nbsp;* Unit Name : IEHistory</div><div class="code_line">// &nbsp;* Purpose &nbsp; : Демо отображения истории браузера</div><div class="code_line">// &nbsp;* Author &nbsp; &nbsp;: Александр (Rouse_) Багель</div><div class="code_line">// &nbsp;* Copyright : © Fangorn Wizards Lab 1998 - 2007</div><div class="code_line">// &nbsp;* Version &nbsp; : 1.00</div><div class="code_line">// &nbsp;* Home Page : http://rouse.drkb.ru</div><div class="code_line">// &nbsp;****************************************************************************</div><div class="code_line">//</div><div class="code_line">&nbsp;</div><div class="code_line">program IEHistory;</div><div class="code_line">&nbsp;</div><div class="code_line">{$APPTYPE CONSOLE}</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows,</div><div class="code_line">&nbsp;&nbsp;ActiveX;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;&nbsp;IID_IUrlHistoryStg2: TGUID = &#39;{AFA0DC11-C313-11d0-831A-00C04FD5AE38}&#39;;</div><div class="code_line">&nbsp;&nbsp;CLSID_CUrlHistory: TGUID = &#39;{3C374A40-BAE4-11CF-BF7D-00AA006946EE}&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TSTATURL = record</div><div class="code_line">&nbsp;&nbsp; &nbsp;cbSize: DWORD; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Размер структуры</div><div class="code_line">&nbsp;&nbsp; &nbsp;pwcsUrl: PWChar; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // То, что было посещено</div><div class="code_line">&nbsp;&nbsp; &nbsp;pwcsTitle: PWChar; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Заголовок</div><div class="code_line">&nbsp;&nbsp; &nbsp;ftLastVisited: FILETIME; &nbsp; &nbsp; // Время последнего визита</div><div class="code_line">&nbsp;&nbsp; &nbsp;ftLastUpdated: FILETIME; &nbsp; &nbsp; // Время последнего обновления</div><div class="code_line">&nbsp;&nbsp; &nbsp;ftExpires: FILETIME; &nbsp; &nbsp; &nbsp; &nbsp; // Дата устаревания</div><div class="code_line">&nbsp;&nbsp; &nbsp;dwFlags: DWORD; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// Флаги STATURL_QUERYFLAG_ISCACHED или STATURL_QUERYFLAG_TOPLEVEL</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;IEnumSTATURL = interface(IUnknown)</div><div class="code_line">&nbsp;&nbsp; &nbsp;[&#39;{3C374A42-BAE4-11CF-BF7D-00AA006946EE}&#39;]</div><div class="code_line">&nbsp;&nbsp; &nbsp;function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function Skip(celt: Longint): HRESULT; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function Reset: HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function Clone(out ppenum: IEnumSTATURL): HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;IUrlHistoryStg = interface(IUnknown)</div><div class="code_line">&nbsp;&nbsp; &nbsp;[&#39;{3C374A41-BAE4-11CF-BF7D-00AA006946EE}&#39;]</div><div class="code_line">&nbsp;&nbsp; &nbsp;function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer): HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL: TSTATURL): HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function BindToObject(pocsUrl: PWideChar; var riid: TIID; out ppvOut: Pointer): HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp; &nbsp;function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;function Translate(Value: String): String;</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetLength(Result, Length(Value));</div><div class="code_line">&nbsp;&nbsp; &nbsp;AnsiToOem(@Value[1], @Result[1]);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;History: IUrlHistoryStg;</div><div class="code_line">&nbsp;&nbsp;Enum: IEnumSTATURL;</div><div class="code_line">&nbsp;&nbsp;Url: TSTATURL;</div><div class="code_line">&nbsp;&nbsp;uFetched: ULONG;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if Succeeded(CoInitialize(nil)) then</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Succeeded(CoCreateInstance(CLSID_CUrlHistory, nil,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;CLSCTX_INPROC_SERVER, IID_IUrlHistoryStg2, History)) then</div><div class="code_line">&nbsp;&nbsp; &nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if Succeeded(History.EnumUrls(Enum)) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;while Succeeded(Enum.Next(1, Url, @uFetched)) do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if uFetched = 0 then Break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if Length(Url.pwcsTitle) = 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Writeln(Translate(&#39;Заголовок отсутствует.&#39;))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Writeln(Translate(Url.pwcsTitle));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Write(&#39;&#62;&#62; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Writeln(Url.pwcsUrl);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end; &nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;History := nil;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;finally</div><div class="code_line">&nbsp;&nbsp; &nbsp;CoUninitialize;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;Readln;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Rouse_</author>
        <category>Интернет, сети, протоколы</category>
      </item>
	
      </channel>
      </rss>
	