如何清除IE緩存(Internet臨時文件,Cookie,歷史記錄,表單記錄,上網密碼)?飄易建議大家可以調用系統API來實現,可以使用借助RunDll32.exe 來運行Internet選項的對應刪除功能。 比如:
Temporary Internet Files (Internet臨時文件)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
CookiesRunDll32.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
我們在c#編程中如何調用這些指令呢?有2種方式,一是調用Process啟動 RunDll32.exe,二是 調用Win32 API函數 ShellExecute 或者 CreateProcess 來執行以上的命令行就可以了。
方法一:調用Process啟動 RunDll32.exeprivate void IEclear()
{
//清除ie緩存、cookie以及一切記錄
Process process = new Process();
process.StartInfo.FileName = "RunDll32.exe";
process.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 255";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
}
方法二: 調用Win32 API函數 ShellExecute 或者 CreateProcess 來執行以上的命令行就可以了。{
//清除ie緩存、cookie以及一切記錄
Process process = new Process();
process.StartInfo.FileName = "RunDll32.exe";
process.StartInfo.Arguments = "InetCpl.cpl,ClearMyTracksByProcess 255";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
}
public enum ShowCommands : int
{
SW_HIDE = 0,
SW_SHOWNOrmAL = 1,
SW_NOrmAL = 1,
SW_SHOWMINIMIZED = 2,
SW_SHOWMAXIMIZED = 3,
SW_MAXIMIZE = 3,
SW_SHOWNOACTIVATE = 4,
SW_SHOW = 5,
SW_MINIMIZE = 6,
SW_SHOWMINNOACTIVE = 7,
SW_SHOWNA = 8,
SW_RESTORE = 9,
SW_SHOWDEFAULT = 10,
SW_FORCEMINIMIZE = 11,
SW_MAX = 11
} [DllImport("shell32.dll")]
static extern IntPtr ShellExecute( IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, ShowCommands nShowCmd); //清除IE臨時文件
ShellExecute(IntPtr.Zero, "open", "rundll32.exe", " InetCpl.cpl,ClearMyTracksByProcess 8", "", ShowCommands.SW_HIDE);
通過以上的方法就可以成功在軟件中刪除IE的cookies、緩存、臨時文件等。
{
SW_HIDE = 0,
SW_SHOWNOrmAL = 1,
SW_NOrmAL = 1,
SW_SHOWMINIMIZED = 2,
SW_SHOWMAXIMIZED = 3,
SW_MAXIMIZE = 3,
SW_SHOWNOACTIVATE = 4,
SW_SHOW = 5,
SW_MINIMIZE = 6,
SW_SHOWMINNOACTIVE = 7,
SW_SHOWNA = 8,
SW_RESTORE = 9,
SW_SHOWDEFAULT = 10,
SW_FORCEMINIMIZE = 11,
SW_MAX = 11
} [DllImport("shell32.dll")]
static extern IntPtr ShellExecute( IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, ShowCommands nShowCmd); //清除IE臨時文件
ShellExecute(IntPtr.Zero, "open", "rundll32.exe", " InetCpl.cpl,ClearMyTracksByProcess 8", "", ShowCommands.SW_HIDE);