解决C#下使用webbrowser控件不刷新问题

最近需要写一个定期打开特定网页并截图的工具,用到了webbrowser工具。一开始都很正常,后来才发现每次截下来的都是同一时间的网页图片(即打开软件时是什么样,之后获得的就全是该网页)。查了一下资料之后基本认为是缓存问题,于是在程序中添加了执行cmd指令,用于清除缓存。

总结下来就是在cmd执行"RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8"这个指令。我用的是比较笨的写法,其实直接调用ShellExecute方法就行。不过我个人对这个不太熟悉,就像下面这样写了。

string cmd = "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8";
            try
            {
                // 创建进程
                System.Diagnostics.Process process = new System.Diagnostics.Process();
                process.StartInfo.FileName = "cmd.exe";
                process.StartInfo.UseShellExecute = false;
                process.StartInfo.RedirectStandardInput = true;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.RedirectStandardError = true;
                process.StartInfo.CreateNoWindow = true;
                process.Start();
                process.StandardInput.AutoFlush = true;
                
                process.StandardInput.WriteLine(cmd);
                
                process.StandardInput.WriteLine("exit");
                // 执行进程
                string standardOutput = process.StandardOutput.ReadToEnd();

                process.WaitForExit();
                process.Close();
            }
            catch (Exception ex)
            {
            }

虽然目前使用webbrowser的人好像不多,但为防有朋友使用也出现类似的问题,将我的解决方法po出来。

参考:c# webBrowser清除缓存问题_weixin_34254823的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值