Win2000中ie在HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\User Shell Folders里Win98中ie在“HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\ShellFolders里面有临时文件目录和历史文件目录,删除文件即可
解决方案 »
- 多个线程同时对多个文本文件操作,如何使用临界区?
- 使用 pngimage,怎样设置PNG图片的透明通道?
- ACCESS数据库在处理 bmp 图片时能否直接读???
- 9.10教师节,9。11中秋节,散分!
- sql除了在TQuery中使用外,还能怎么使用,比如我用的是clientDataSet怎么用SQL
- 我的delphi6出现在问题,高手请进来看看。自认为是低手的不要来哦
- ADOTable1怎么把记录全删除?我用BCB,Table有EMPTYTABLE,可ADOTable没有,怎么处理!
- 如何在主窗口显示前,先显示一个透明的动画(要看见windows的桌面)
- Delphi-Corba-Java 屠龙剑-乾坤大挪移-倚天剑?
- delphi自带的quickrpt被我从install packages...中删走了,装了个pro版。现在想装回原来的那个,请问除了重装delphi外还有什么办法?
- Delphi5中报表的问题(在线等!!!!!!)
- 没事偷着乐,爽,狂散!
void CClearDlg::OnOK()
{
char szWindowsPath[MAX_PATH];
char szDelPath[MAX_PATH];
GetWindowsDirectory(szWindowsPath,MAX_PATH); if (m_IeCache.GetCheck())
{
LPCSTR SubKey="Software\\Microsoft\\Internet Explorer\\TypedURLs";
RegDeleteKey(HKEY_CURRENT_USER,SubKey);
} if (m_IeCookie.GetCheck())
{
//InternetSetOption(0,INTERNET_OPTION_END_BROWSER_SESSION,0,0);
char szCookie[] = "\\Cookie";
lstrcpy(szDelPath,szWindowsPath);
lstrcat(szDelPath,szCookie);
DelDirectory(szDelPath);
} if (m_IeHistory.GetCheck())
{
char szHistory[] = "\\History";
lstrcpy(szDelPath,szWindowsPath);
lstrcat(szDelPath,szHistory);
DelDirectory(szDelPath);
} if (m_IeTemp.GetCheck())
{
char szIeTemp[] = "\\Temporary Internet Files";
lstrcpy(szDelPath,szWindowsPath);
lstrcat(szDelPath,szIeTemp);
DelDirectory(szDelPath);
}
if (m_WinList.GetCheck())
{
char szRecent[]="\\Recent";
lstrcpy(szDelPath,szWindowsPath);
lstrcat(szDelPath,szRecent);
DelDirectory(szDelPath);
} if (m_WinTemp.GetCheck())
{
char szTemp[] = "\\Temp";
lstrcpy(szDelPath,szWindowsPath);
lstrcat(szDelPath,szTemp);
DelDirectory(szDelPath);
} CDialog::OnOK();
}BOOL CClearDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_IeCache.SetCheck(1);
m_IeCookie.SetCheck(1);
m_IeHistory.SetCheck(1);
m_IeTemp.SetCheck(1);
m_WinList.SetCheck(1);
m_WinTemp.SetCheck(1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}void CClearDlg::DelDirectory(LPCSTR DirName)
{
CFileFind tempFind; //声明一个CFileFind类变量,以用来搜索
char tempFileFind[MAX_PATH],HisDirName[MAX_PATH]; //用于定义搜索格式
sprintf(tempFileFind,"%s\\*.*",DirName); //匹配格式为*.*,即该目录下的所有文件
strcpy(HisDirName,DirName); BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); //查找第一个文件
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile(); //递归搜索其他的文件
char foundFileName[MAX_PATH];
strcpy(foundFileName,tempFind.GetFileName().GetBuffer(MAX_PATH));
if(!tempFind.IsDots()) //如果不是"."目录
{
if(tempFind.IsDirectory()) //如果是目录,则递归地调用
{ //DeleteDirectory
char tempDir[MAX_PATH];
sprintf(tempDir,"%s\\%s",DirName,foundFileName);
DelDirectory(tempDir);
}
else
{ //如果是文件则直接删除之
char tempFileName[MAX_PATH];
sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
DeleteFile(tempFileName);
}
}
}
if (!strcmp(HisDirName,DirName))
RemoveDirectory(DirName); tempFind.Close();
}
Var
lpEntryInfo : PInternetCacheEntryInfo;
hCacheDir : LongWord;
dwEntrySize : LongWord;
dwLastError : LongWord;
Begin
dwEntrySize := 0;
FindFirstUrlCacheEntry(NIL,TInternetCacheEntryInfoNIL^ ),dwEntrySize );
GetMem( lpEntryInfo, dwEntrySize );
hCacheDir := FindFirstUrlCacheEntry( NIL, lpEntryInfo^,
dwEntrySize );
If ( hCacheDir <> 0 ) Then
DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
FreeMem( lpEntryInfo );
Repeat
dwEntrySize := 0;
FindNextUrlCacheEntry( hCacheDir, TInternetCacheEntryInfo(
NIL^ ), dwEntrySize );
dwLastError := GetLastError();
If ( GetLastError = ERROR_INSUFFICIENT_BUFFER ) Then Begin
GetMem( lpEntryInfo, dwEntrySize );
If ( FindNextUrlCacheEntry( hCacheDir, lpEntryInfo^,
dwEntrySize ) ) Then
DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
FreeMem(lpEntryInfo);
End;
Until ( dwLastError = ERROR_NO_MORE_ITEMS ); End;
//清除历史纪录
type
TSTATURL = record
cbSize: DWORD;
pwcsUrl: DWORD;
pwcsTitle: DWORD;
ftLastVisited: FILETIME;
ftLastUpdated: FILETIME;
ftExpires: FILETIME;
dwFlags: DWORD;
end;type
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;type
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: TSTATURL): HResult; stdcall;
function BindToObject(pocsUrl: PWideChar; var riid: TGUID; out ppvOut: Pointer): HResult; stdcall;
function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;
end;type
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;function ClearIEHistory:integer;
const
CLSID_CUrlHistory: TGUID = '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';
var
IEHistory:IUrlHistoryStg2;
begin
IEHistory:=CreateComObject(CLSID_CUrlHistory) as IUrlHistoryStg2;
IEHistory.ClearHistory;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ClearIEHistory;
end;