C#控制IE进程关闭和缓存清理的实现代码

 更新时间:2014年04月15日 10:25:56   作者:  
这篇文章主要介绍了C#控制IE进程关闭和缓存清理的实现代码,需要的朋友可以参考下
复制代码 代码如下:

class IEUtil {
    public static void openIE(string url) {
        try {
            //System.Diagnostics.Process.Start(url);
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = "iexplore.exe";
            p.StartInfo.Arguments = url;
            p.Start();
        } catch(Exception ex) {
            Log.logger("openIE" + url + "----------" + ex.Message);
        }
    }
    public static void closeAllIEProcess() {
        string defaultBrowserName = GetDefaultBrowerName();
        System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("IEXPLORE");
        foreach(System.Diagnostics.Process proc in procs) {
            proc.Kill();
        }
    }
    public static void CleanCookie() {
        try {
            string[] theFiles = System.IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Cookies), "*", System.IO.SearchOption.AllDirectories);
            foreach(string s in theFiles) FileDelete(s);
        } catch(Exception e) {
            Log.logger("Delete cookie error" + e.Message);
        }
    }
    static bool FileDelete(string path) {
        //first set the File's ReadOnly to 0
        //if EXP, restore its Attributes
        System.IO.FileInfo file = new System.IO.FileInfo(path);
        System.IO.FileAttributes att = 0;
        bool attModified = false;
        try {
            //### ATT_GETnSET
            att = file.Attributes;
            file.Attributes &= (~System.IO.FileAttributes.ReadOnly);
            attModified = true;
            file.Delete();
        } catch(Exception e) {
            if (attModified) file.Attributes = att;
            return false;
        }
        return true;
    }
    public static string GetDefaultBrowerName() {
        string mainKey = @"http\shell\open\command";
        string nameKey = @"http\shell\open\ddeexec\Application";
        string strRet = string.Empty;
        try {
            RegistryKey regKey = Registry.ClassesRoot.OpenSubKey(nameKey);
            strRet = regKey.GetValue("").ToString();
        } catch {
            strRet = "";
        }
        return strRet;
    }
    /// <summary>
    /// 清除文件夹
    /// </summary>
    /// <param name="path">文件夹路径</param>
    static void FolderClear(string path) {
        System.IO.DirectoryInfo diPath = new System.IO.DirectoryInfo(path);
        if (diPath.Exists) {
            foreach(System.IO.FileInfo fiCurrFile in diPath.GetFiles()) {
                FileDelete(fiCurrFile.FullName);
            }
            foreach(System.IO.DirectoryInfo diSubFolder in diPath.GetDirectories()) {
                FolderClear(diSubFolder.FullName);
                // Call recursively for all subfolders
            }
        }
    }
    /// <summary>
    /// 执行命令行
    /// </summary>
    /// <param name="cmd"></param>
    static void RunCmd(string cmd) {
        ProcessStartInfo p = new ProcessStartInfo();
        p.FileName = "cmd.exe";
        p.Arguments = "/c " + cmd;
        p.WindowStyle = ProcessWindowStyle.Hidden; // Use a hidden window
        Process.Start(p);
    }
    /// <summary>
    /// 删除临时文件
    /// </summary>
    public static void CleanTempFiles() {
        FolderClear(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache));
        RunCmd("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8");
    }
}

相关文章

  • C#开源的AOP框架--KingAOP基础

    C#开源的AOP框架--KingAOP基础

    这篇文章主要介绍了一款C#开源的AOP框架--KingAOP框架的基础知识,对于想学习AOP的小伙伴来说,非常不错,希望大家能够喜欢。
    2015-12-12
  • C#多线程系列之线程等待

    C#多线程系列之线程等待

    本文详细讲解了C#多线程中的线程等待,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Unity UGUI实现滑动翻页效果

    Unity UGUI实现滑动翻页效果

    这篇文章主要为大家详细介绍了Unity UGUI实现滑动翻页效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C#操作Clipboard读取剪切板中数据实例详解

    C#操作Clipboard读取剪切板中数据实例详解

    这篇文章主要介绍了C#操作Clipboard读取剪切板中数据的方法,实例分析了C#读取剪贴板数据的具体步骤与实现技巧,需要的朋友可以参考下
    2015-05-05
  • C#中Invoke的具体使用

    C#中Invoke的具体使用

    本文主要介绍了C#中Invoke的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • C#中HttpWebRequest、WebClient、HttpClient的使用详解

    C#中HttpWebRequest、WebClient、HttpClient的使用详解

    这篇文章主要介绍了C#中HttpWebRequest、WebClient、HttpClient的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • C#实现简单的窗口抖动

    C#实现简单的窗口抖动

    这篇文章主要为大家详细介绍了C#实现简单的窗口抖动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 浅谈c# 泛型类的应用

    浅谈c# 泛型类的应用

    本篇文章是对c#中泛型类的应用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 解决C#调用dll提示

    解决C#调用dll提示

    下面小编就为大家分享一篇解决C#调用dll提示"试图加载格式不正确的程序"问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • C#实现获取mp3 Tag信息的方法

    C#实现获取mp3 Tag信息的方法

    这篇文章主要介绍了C#实现获取mp3 Tag信息的方法,涉及C#针对MP3文件属性的相关操作技巧,需要的朋友可以参考下
    2017-07-07

最新评论