Сейчас на форуме: bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Журнал IE winapi
Посл.ответ Сообщение

Ранг: 5.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 февраля 2011 18:50
· Личное сообщение · #1

Надо узнать присутствует ли ссылка в журнале IE. Код который это выполняет не работает в Vista поскольку функция RetrieveUrlCacheEntryStreamA возвращает NULL, а GetLastError() - ERROR_FILE_NOT_FOUND. Причём приведённый ниже код отлично срабатывает на XP и 7, если в качестве аргумента lpszUrl передавать ссылку, которая действительно присутствует в журнале. Я тестировал на разных ссылках, в частности rambler.ru, и разных форматах записи:
rambler.ru
www.rambler.ru
www.rambler.ru
Rambler (www.rambler.ru)
при этом каждый раз предварительно проверяя наличие ссылки в журнале браузера.

В чём может быть проблема? Может есть какой-то альтернативный путь просмотра журнала IE?

void WINAPI RetrieveStream(LPSTR lpszUrl)
{
DWORD dwEntrySize=0;
HANDLE hStream;

hStream = RetrieveUrlCacheEntryStreamA(lpszUrl,NULL, &dwEntrySize, TRUE, 0); // NULL
DWORD err = GetLastError(); // ERROR_FILE_NOT_FOUND
}




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 08 февраля 2011 12:32
· Личное сообщение · #2

Посмотри вот сорсы www.koders.com/delphi/fid5D073F41D3472DD3D68135BB657000F774703ED7.aspx?s=cryptoapi

Так не так всё просто, насколько я понял кешей может быть несколько.

-----
Yann Tiersen best and do not fuck





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 09 февраля 2011 01:21 · Поправил: mak
· Личное сообщение · #3

Может это из за IE8 ? Там многое что не работает нормально , не знаю кто сидит то на Vista , кроме купивших не вовремя компьютер домохозяек.

Это читали? RetrieveUrlCacheEntryStream does not do any URL parsing, so a URL containing an anchor (#) will not be found in the cache, even if the resource is cached. For example, if the URL http://adatum.com/example.htm#sample is passed, the function returns ERROR_FILE_NOT_FOUND even if http://adatum.com/example.htm is in the cache.

Сюда же закидоны ИЕ .. как вариант можно проверить. А если у вас Виста , почему вы не можете реверснуть то что работает как надо ? В отладчике это будет найти не трудно

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: -0.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 12 февраля 2011 12:20
· Личное сообщение · #4

Может код под Vista требует запуска с правами администратора? Еще можно попробовать искать строки в бинарном файле кэша.


 eXeL@B —› Программирование —› Журнал IE winapi
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати