[轉貼] 清除IE臨時文件緩存cookies的方法

2012102916:47
出處:http://www.piaoyi.org/c-sharp/c-ie-cookies-clear.html

如何清除IE緩存(Internet臨時文件,Cookie,歷史記錄,表單記錄,上網密碼)?飄易建議大家可以調用系統API來實現,可以使用借助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

    我們在c#編程中如何調用這些指令呢?有2種方式,一是調用Process啟動 RunDll32.exe,二是 調用Win32 API函數 ShellExecute 或者 CreateProcess 來執行以上的命令行就可以了。

    方法一:調用Process啟動 RunDll32.exe
private 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 來執行以上的命令行就可以了
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、緩存、臨時文件等。