Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

IE History   Найти похожие ветки 

 
Igor_thief   (2005-06-25 23:21) [0]

Как получить список истории из IE?


 
NightStranger ©   (2005-06-25 23:26) [1]

C:\Documents and Settings\USER_NAME\Local Settings\History...


 
begin...end ©   (2005-06-26 10:16) [2]

SHGetSpecialFolderPath + CSIDL_HISTORY


 
Igor_thief   (2005-06-26 12:39) [3]

Описаное выше, дает мне возможностб получить доступ к папке история. А как мне получить полный список истории и выбрав один из урлов, удалить его не только из списка, но и из истории (но только этот урл)?


 
Igor_thief   (2005-06-26 13:31) [4]

Я нашол хороший пример, который получает список истории. Но там работа с ком объектами, а я в этом деле не очень силен. Там есть возможность удаления всей истории. Может кто знает, как переделать это так, чтобы удалялась только одна запись? Вот код:
unit UrlH_Unit;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 Activex, Comobj, StdCtrls, ComCtrls, Grids;

const

 STATURL_QUERYFLAG_ISCACHED = $00010000;
 STATURL_QUERYFLAG_NOURL = $00020000;
 STATURL_QUERYFLAG_NOTITLE = $00040000;
 STATURL_QUERYFLAG_TOPLEVEL = $00080000;

 STATURLFLAG_ISCACHED = $00000001;
 STATURLFLAG_ISTOPLEVEL = $00000002;

 IID_IEnumStatUrl: TGUID = (D1: $3C374A42; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
 IID_IUrlHistoryStg: TGUID = (D1: $3C374A41; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
 IID_IUrlHistoryStg2: TGUID = (D1: $AFA0DC11; D2: $C313; D3: $831A; D4: ($83, $1A, $00, $C0, $4F, $D5, $AE, $38));
 IID_IUrlHistoryNotify: TGUID = (D1: $BC40BEC1; D2: $C493; D3: $11D0; D4: ($83, $1B, $00, $C0, $4F, $D5, $AE, $38));

 SID_IEnumStatUrl = "{3C374A42-BAE4-11CF-BF7D-00AA006946EE}";
 SID_IUrlHistoryStg = "{3C374A41-BAE4-11CF-BF7D-00AA006946EE}";
 SID_IUrlHistoryStg2 = "{AFA0DC11-C313-11d0-831A-00C04FD5AE38}";
 SID_IURLHistoryNotify = "{BC40BEC1-C493-11d0-831B-00C04FD5AE38}";
 CLSID_CUrlHistory: TGUID = "{3C374A40-BAE4-11CF-BF7D-00AA006946EE}";

type
 STATURL = record
   cbSize: DWORD;
   pwcsUrl: DWORD;
   pwcsTitle: DWORD;
   ftLastVisited: FILETIME;
   ftLastUpdated: FILETIME;
   ftExpires: FILETIME;
   dwFlags: DWORD;
 end;

 IEnumSTATURL = interface(IUnknown)
   ["{3C374A42-BAE4-11CF-BF7D-00AA006946EE}"]
   function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT; stdcall;
   function Skip(celt: Longint): HRESULT; stdcall;
   function Reset: HResult; stdcall;
   function Clone(out ppenum: IEnumSTATURL): HResult; stdcall;
   function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HResult; stdcall;
 end;

 IUrlHistoryStg = interface(IUnknown)
   ["{3C374A41-BAE4-11CF-BF7D-00AA006946EE}"]
   function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer): HResult; stdcall;
   function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HResult; stdcall;
   function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL: STATURL): HResult; stdcall;
   function BindToObject(pocsUrl: PWideChar; var riid: TIID; out ppvOut: Pointer): HResult; stdcall;
   function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;
 end;

 IUrlHistoryStg2 = interface(IUrlHistoryStg)
   ["{AFA0DC11-C313-11D0-831A-00C04FD5AE38}"]
   function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer;
     fWriteHistory: Integer; var poctNotify: Pointer;
     const punkISFolder: IUnknown): HResult; stdcall;
   function ClearHistory: HResult; stdcall;
 end;

 IUrlHistoryNotify = interface(IOleCommandTarget)
   ["{BC40BEC1-C493-11d0-831B-00C04FD5AE38}"]
 end;

 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   RetrieveBtn: TButton;
   ClearBtn: TButton;
   procedure RetrieveBtnClick(Sender: TObject);
   procedure ClearBtnClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 I: IUrlHistoryStg2;

implementation

{$R *.DFM}

function FileTimeToDt(Ft: TFileTime): TDateTime;
var
 l: Integer;
 lft: TFileTime;
begin
 FileTimeToLocalFiletime(Ft, lft);
 if FileTimeToDosDateTime(lft, Longrec(l).Hi, Longrec(l).Lo) then
   result := FiledateToDatetime(l) else
   result := 0;
end;

procedure TForm1.RetrieveBtnClick(Sender: TObject);
var
 r: Staturl;
 Enum: IEnumStatUrl;
 X: Integer;
 Row: Integer;
begin
 StringGrid1.Cells[0, 0] := "Last Visited";
 StringGrid1.Cells[1, 0] := "Title";
 StringGrid1.Cells[2, 0] := "Url";
 StringGrid1.Cells[3, 0] := "Last Updated";
 StringGrid1.Cells[4, 0] := "Expires";
 Row := 0;
 I := CreateComObject(ClsId_CUrlHistory) as IUrlHistoryStg2;
 I.EnumUrls(Enum);
 Enum.SetFilter("http://", 0);
 while enum.next(1, r, @X) = S_OK do begin
   Inc(Row);
   StringGrid1.RowCount := Row + 1;
   Stringgrid1.Cells[0, Row] := DateTimeToStr(FileTimeToDt(r.ftLastVisited));
   Stringgrid1.Cells[1, Row] := PWidechar(Pointer(r.pwcsTitle));
   Stringgrid1.Cells[2, Row] := PWidechar(Pointer(r.pwcsUrl));
   Stringgrid1.Cells[3, Row] := DateTimeToStr(FileTimeToDt(r.ftLastUpdated));
   Stringgrid1.Cells[4, Row] := DateTimeToStr(FileTimeToDt(r.ftExpires));
 end;
end;

procedure TForm1.ClearBtnClick(Sender: TObject);
begin
I.ClearHistory;
end;

end.


 
P.N.P. ©   (2005-06-26 14:11) [5]

>Igor_thief   (26.06.05 13:31) [4]
>чтобы удалялась только одна запись?
Элементарно

procedure TForm1.ClearButtonClick(Sender: TObject);
var
 P:WideString;
begin
 p:=Stringgrid1.Cells[2, Stringgrid1.Row];
 I.DeleteUrl(PWideChar(P),0);
end;


 
Igor_thief   (2005-06-26 15:55) [6]

P.N.P. ©   (26.06.05 14:11) [5]
Я тоже так думал, но не работает! Удаляет из грида, но в ИЕ остается. Что-то тут не то.


 
P.N.P. ©   (2005-06-26 16:01) [7]

>Igor_thief   (26.06.05 15:55) [6]
У меня без проблем, все удаляет.


 
Igor_thief   (2005-06-26 16:14) [8]

P.N.P. ©   (26.06.05 16:01) [7]
Странно, что ж у меня тогда за проблема?


 
P.N.P. ©   (2005-06-26 16:36) [9]

>Igor_thief   (26.06.05 16:14) [8]
добавь в
procedure TForm1.RetrieveButtonClick(Sender: TObject);
сразу после
begin
 StringGrid1.Rows[1].Clear;
И все в ажуре =)


 
Igor_thief   (2005-06-26 17:02) [10]

P.N.P. ©   (26.06.05 16:36) [9]
StringGrid1.Rows[1].Clear;

Была бы в этом проблема :(. Но из списка оно нормально удаляется, а вот когда заходишь в ИЕ, то все на месте! Как и до попытки удаления данного элемента.


 
Igor_thief   (2005-06-28 00:36) [11]

Ну что, таки не получается?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.04 c
10-1096353666
Zyb
2004-09-28 10:41
2005.07.18
ActiveX


9-1112792754
anat
2005-04-06 17:05
2005.07.18
OpenGL нужна помощь


1-1120041414
Vad74
2005-06-29 14:36
2005.07.18
Windows_CE и Delphi


5-1090775623
crizis
2004-07-25 21:13
2005.07.18
событие MouseMove


14-1119340150
BiN
2005-06-21 11:49
2005.07.18
Ну заработал, наконец-то





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский