如何编程清除IE缓存收藏
手动清除IE缓存(Internet临时文件,Cookie,历史记录,表单记录,上网密码),可以通过“Internet选项”控制面板(如下图)来实现。
如果想命令行方式来清除IE缓冲,可以使用借助RunDll32.exe 来运行Internet选项的对应功能。
比如:
Temporary Internet Files (Internet临时文件)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
Cookies
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2
History (历史记录)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1
Form Data (表单数据)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16
Passwords (密码)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32
Delete All (全部删除)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255
Delete All - "Also delete files and settings stored by add-ons"
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351
想通过编程方式清除IE缓存, 调用Win32 API函数 ShellExecute 或者 CreateProcess 来执行以上的命令行就可以了。
例子:
ShellExecute(NULL, _T("open"), _T("rundll32.exe"), _T("InetCpl.cpl,ClearMyTracksByProcess 4351"), NULL, SW_SHOWNORMAL);
发表于 @ 2009年02月21日 03:32:00|评论(loading... <script type="text/javascript">AddFeedbackCountStack("3916185")</script> )|收藏
评论
# bluebee2009 发表于2009-02-22 02:51:40 IP: 59.56.37.*-
这里还用SW_SHOWNORMAL?
下面的代码是我自己的浏览器中使用的。
TCHAR commandLine[MAX_PATH];
GetWindowsDirectory(commandLine, sizeof(commandLine));
lstrcat(commandLine, _T("//rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351"));
PROCESS_INFORMATION procInfo;
STARTUPINFO startInfo;
memset(&startInfo, 0, sizeof(startInfo));
startInfo.dwFlags = STARTF_FORCEOFFFEEDBACK;
CreateProcess(0, commandLine, 0, 0, FALSE, NORMAL_PRIORITY_CLASS, 0, 0, &startInfo, &procInfo);