全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2452
推到 Plurk!
推到 Facebook!

關於IE歷史紀錄的複製問題

尚未結案
fanmeide
一般會員


發表:10
回覆:5
積分:3
註冊:2008-02-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-26 15:25:57 IP:222.243.xxx.xxx 訂閱
我想實現的功能是定時複製IE歷史記錄
不知道如何複製,希望大家能給個思路,
最後能給個可以在D7或者D7下的例子
萬分感謝
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-30 15:55:19 IP:211.23.xxx.xxx 訂閱
不曉得以下的做法是否符合您的要求:

監視每次 IE Navigate 的動作,把 URL 儲存起來,不知道是否符合您的需求 ?
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-04-30 17:39:58 IP:61.222.xxx.xxx 訂閱

[code delphi]
uses
ComObj, ActiveX, ShlObj;

function GetHistoryToday(List: TStrings): Integer;
var pvDesktop: IShellFolder;
pvFolder: IShellFolder;
pvToday: IShellFolder;
pvEnumToday: IEnumIDList;
pvEnumHist: IEnumIDList;
pvMalloc: IMalloc;
pidlHistory: PItemIDList;
pidlToday: PItemIDList;
pidlItem: PItemIDList;
lpValue: TStrRet;
lpItem: TStrRet;
szValue: String;
cbCount: Cardinal;

function StrRetToStr(StrRet: TStrRet): String;
begin
case StrRet.uType of
STRRET_CSTR : SetString(result, StrRet.cStr, lstrlen(StrRet.cStr));
STRRET_OFFSET : SetLength(result, 0);
STRRET_WSTR : result:=StrRet.pOleStr;
else
SetLength(result, 0);
end;
end;

begin

// Check list
if Assigned(List) then
begin
// Lock list
List.BeginUpdate;
// Resource protection
try
// Clear the list
List.Clear;
// Get malloc
if (SHGetMalloc(pvMalloc) = S_OK) then
begin
// Get desktop folder
if (SHGetDesktopFolder(pvDesktop) = S_OK) then
begin
// Get history pidl
if (SHGetSpecialFolderLocation(GetDesktopWindow, CSIDL_HISTORY, pidlHistory) = S_OK) then
begin
// Bind to folder interface
if (pvDesktop.BindToObject(pidlHistory, nil, IID_IShellFolder, pvFolder) = S_OK) then
begin
// Locate the folder for "Today"
if (pvFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_INCLUDEHIDDEN, pvEnumHist) = S_OK) then
begin
// Enumerate items
while (pvEnumHist.Next(1, pidlItem, cbCount) = S_OK) do
begin
// Get display name of pidl
if (pvFolder.GetDisplayNameOf(pidlItem, SHGDN_NORMAL or SHGDN_INFOLDER, lpValue) = S_OK) then
begin
// Resource protection
try
// Check for "Today"
if (CompareText(StrRetToStr(lpValue), '今天') = 0) then
begin
// Switch pidls
pidlToday:=pidlItem;
// Bind to folder interface
if (pvFolder.BindToObject(pidlToday, nil, IID_IShellFolder, pvToday) = S_OK) then
begin
// Get enumerator for "Today" folder
if (pvToday.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, pvEnumToday) = S_OK) then
begin
// Enumerate items
while (pvEnumToday.Next(1, pidlItem, cbCount) = S_OK) do
begin
// Get the url
if (pvToday.GetDisplayNameOf(pidlItem, SHGDN_NORMAL or SHGDN_INFOLDER, lpItem) = S_OK) then
begin
// Resource protection
try
// Get the string value
szValue:=StrRetToStr(lpItem);
// Check URL string
if (Length(szValue) > 0) then List.Add(szValue);
finally
// Free string memory
if (lpItem.uType = STRRET_WSTR) then pvMalloc.Free(lpItem.pOleStr);
end;
end;
// Free memory
CoTaskMemFree(pidlItem);
end;
// Release interface
pvEnumToday:=nil;
end;
// Release interface
pvToday:=nil;
end;
// Free memory
CoTaskMemFree(pidlToday);
// Done processing
break;
end;
finally
// Free string memory
if (lpValue.uType = STRRET_WSTR) then pvMalloc.Free(lpValue.pOleStr);
end;
end;
// Free the pidl
CoTaskMemFree(pidlItem);
end;
// Release interface
pvEnumHist:=nil;
end;
// Release interface
pvFolder:=nil;
end;
// Free memory
pvMalloc.Free(pidlHistory);
end;
// Release interface
pvDesktop:=nil;
end;
// Release interface
pvMalloc:=nil;
end;
finally
// Unlock the list
List.EndUpdate;
end;
// Return list count
result:=List.Count;
end
else
// No list
result:=(-1);

end;

[/code]

Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-10-27 14:20:33 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-03-28 17:16:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!