Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.065 c
3-1118305231
sasa2001
2005-06-09 12:20
2005.07.18
Как лучше организовать обновление изменений в базе?


14-1119692712
Antonn
2005-06-25 13:45
2005.07.18
Отправка сообщения юзеру в сети.


4-1116535364
NikNet
2005-05-20 00:42
2005.07.18
Как разархивировать RAR архив с паралем?


4-1116498180
iskatel
2005-05-19 14:23
2005.07.18
служба доступа к файлаи принтерам


8-1110725856
Uncle Dix
2005-03-13 17:57
2005.07.18
Считывание сигнала с линейного входа(Line in) звуковой карты