2013年9月11日 星期三

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

出處: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、緩存、臨時文件等。

沒有留言:

張貼留言