在C# WinForm 里WebBrowser这个控件能清楚Cookie和浏览器里的缓存么?要代码 急急急急急

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C# WinForm 里WebBrowser这个控件能清楚Cookie和浏览器里的缓存么?要代码 急急急急急相关的知识,希望对你有一定的参考价值。

在C# WinForm 里WebBrowser这个控件能清楚Cookie和浏览器里的缓存么?要代码 急急急急急 谢谢好心人了,非常着急
是清除 不好意思写错了

参考技术A 应该可以,Cookie和浏览器里的缓存是由浏览器维持的,但是WebBrowser用的是IE的内核,应该跟IE是用同一个Cookie和缓存的 参考技术B <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
<input type="button" name="Button" value="关闭窗口" onClick="document.all.WebBrowser.ExecWB(45,1)">

试着改变参数会得到其他一些功能:

WebBrowser.ExecWB(1,1) 打开
WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
WebBrowser.ExecWB(4,1) 保存网页
WebBrowser.ExecWB(6,1) 打印
WebBrowser.ExecWB(7,1) 打印预览
WebBrowser.ExecWB(8,1) 打印页面设置
WebBrowser.ExecWB(10,1) 查看页面属性
WebBrowser.ExecWB(15,1) 好像是撤销,有待确认
WebBrowser.ExecWB(17,1) 全选
WebBrowser.ExecWB(22,1) 刷新
WebBrowser.ExecWB(45,1) 关闭窗体无提示
参考技术C c# 清除当前用户所有cookies
try

foreach (string strFileName in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Cookies)))

if (strFileName.ToLower().IndexOf("index.dat")==-1)

File.Delete(strFileName);




catch(Exception ex)



————————————————————
WebBrowser 只是一个展示控件,

如果,清除缓存,可能需要调用API

C#webBrowser使用代理服务器的方法winform

其实在C#中使用webBrowser大家应该都会了,论坛也有很多相前的例子大家可以查询一下就知道了
但是像直接使用浏览器一样设置代理 的方法可能很多人还不知道吧。
这个其实是调用一个Dll文件进行设置的,
下面大家跟我一起来看看吧
首先还是要先建一个结构就是代理信息的结构体
如下

[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
/// <summary>
   /// 代理结构体
   /// </summary>
   public struct Struct_INTERNET_PROXY_INFO
   {
       public int dwAccessType;
       public IntPtr proxy;//IP以及端口号
       public IntPtr proxyBypass;
   };


下面是如何 设置代理 的具体实现

[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/// <summary>
        /// 设置代理的Api
        /// </summary>
        /// <returns></returns>
        [DllImport("wininet.dll", SetLastError = true)]
        private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);
 
        /// <summary>
        /// 代理IP以及端口号
        /// </summary>
        /// <param name="strProxy"></param>
        private void RefreshIESettings(string strProxy)
        {
            const int INTERNET_OPTION_PROXY = 38;
            const int INTERNET_OPEN_TYPE_PROXY = 3;
 
            Struct_INTERNET_PROXY_INFO struct_IPI;
 
            // Filling in structure
            struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY;
            struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy);
            struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local");
 
            // Allocating memory
            IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));
 
            // Converting structure to IntPtr
            Marshal.StructureToPtr(struct_IPI, intptrStruct, true);
 
            bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));
        }


使用的时候也非常的简单

[C#] 纯文本查看 复制代码
01
02
RefreshIESettings("41.129.53.227:80");
webBrowser1.Navigate("http://www.sufeinet.com");


这样就可以了。
好了大家自己试试吧。










以上是关于在C# WinForm 里WebBrowser这个控件能清楚Cookie和浏览器里的缓存么?要代码 急急急急急的主要内容,如果未能解决你的问题,请参考以下文章

用C# Winform程序把图片插入到Excel中的代码

C# WinForm开发系列 - WebBrowser

C# webBrowser(wpf/winform) 互调js

C#之WinForm WebBrowser实用技巧汇总

C# winform webbrowser如何指定内核为IE11?

C# winform webbrowser如何指定内核为IE11?