2016-04-23 13 views
-1

IEのダウンロード履歴を取得する方法はありますか?Internet Explorerのダウンロード履歴はどこにありますか?

私たちはdownloads.sqliteファイルからFirefoxの履歴を取得し、history.sqliteファイルからChromeのダウンロード履歴を取得します。

しかし、どのようにIEで見つけるには?

FindFirstUrlCacheEntry()でいくつか試しましたが、期待どおりの出力がありませんでした。 index.datファイルについて読んでいますが、IEで閲覧すると更新されません。

+0

これは、superuser.comにとってより良い質問です。 – Barmar

+0

これはオフトピックではありません。彼はプログラム的に解決策を探しています。下の例は、コード例が不足していると投票しますが、関連性のないものとして閉じることはできません。 –

答えて

0

IUrlHistoryStgというCOMインターフェイスを使用します。

int main() 
{ 
    CoInitialize(NULL); 

    IUrlHistoryStg* ieHistory = NULL; 
    HRESULT hr = CoCreateInstance(CLSID_CUrlHistory, NULL, CLSCTX_ALL, IID_IUrlHistoryStg, (LPVOID *)(&ieHistory)); 

    if (!SUCCEEDED(hr)) 
     return 1; 

    IEnumSTATURL* urlEnumer; 
    hr = ieHistory->EnumUrls(&urlEnumer); 

    if (!SUCCEEDED(hr)) 
     return 2; 

    if (!SUCCEEDED(urlEnumer->SetFilter(L"", STATURL_QUERYFLAG_ISCACHED|STATURL_QUERYFLAG_TOPLEVEL|STATURL_QUERYFLAG_NOURL|STATURL_QUERYFLAG_NOTITLE|STATURLFLAG_ISTOPLEVEL|STATURLFLAG_ISCACHED))) 
     return 4; 

    if (!SUCCEEDED(urlEnumer->Reset())) 
     return 3; 

    unsigned long correct = 0; 
    STATURL result = {}; 

    struct Urls 
    { 
     std::wstring url; 
     std::wstring title; 

     Urls(LPWSTR url, LPWSTR title) : url(url ? url : L""), title(title ? title : L"") 
     {} 
    }; 

    std::vector<Urls> urls; 

    do 
    { 
     result.cbSize = sizeof(result); 
     if (SUCCEEDED(urlEnumer->Next(1, &result, &correct))) 
     { 
      Urls url(result.pwcsUrl, result.pwcsTitle); 
      urls.push_back(url); 
     } 
    } 
    while (correct == 1); 

    size_t size = urls.size(); 
    ieHistory->Release(); 
    urlEnumer->Release(); 

    return 0; 
} 
+0

お返事ありがとうございます。上記のコードを試してみました。IR履歴、つまり私が訪れたリンクを取得できます。しかし、ダウンロードしたファイルは追跡できません。また、私は訪問したURLに質問の結果に記載されているFindFirstUrlCacheEntryを使用します。 Internet Explorerからダウンロードしたファイルの履歴を取得したい – Mrunal

関連する問題