您的当前位置:首页>全部文章>文章详情

【C#】Winform NanUI 0.77版本 清除Cookie等本地缓存

CrazyPanda发表于:2024-02-08 23:43:58浏览:307次TAG:

目录

需求

NanUI0.88版本的缓存路径

NanUI0.77版本的缓存路径

试着实现功能

添加扩展出现的问题

解决问题

结束




需求

清除web前端保存的一些的数据,或者清除浏览器缓存会用到。


NanUI0.88版本的缓存路径

在NanUI0.88版本中,只要在Program.cs启动模块中调用app.ClearCacheFile();就可以清除浏览的缓存了。

0.88版本的缓存路径:

"C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Studio\\NanUI\\NanUI088_SourceCode"

参考NanUI0.88源码,可以看到,实现这个功能,是在初始化框架之前,删除了项目的缓存文件夹

源码 ApplicationConfigurationBuilderExtensions.cs  脚本下的ClearCacheFile方法

1.png

文件夹:

1.png


NanUI0.77版本的缓存路径

通过Bootstrap.cs 中 CacheDirectory 属性得出了缓存路径:

"C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Studio\\NanUI\\NanUI077_SourceCode\\Cache"

这里可以看到,对比0.88版本,多了一个Cache文件夹,直接将其去掉,这样就和0.88版本的路径一样了

/// <summary>
/// Get the cache path of Chromium
/// 获取Chromium的缓存路径,缓存目录用于存放 Chromium 的零时数据,
/// 包含了浏览记录、Cookies 数据、LocalStorage 数据等。通常该目录位于应用程序数据目录中。
/// </summary>
public static string CacheDirectory
{
    //get => Path.Combine(ApplicationDataDirectory, "Cache");
    get => ApplicationDataDirectory;
}


试着实现功能

知道这个原理,那么我们直接删除这个文件夹可以了吗?是的,手动删除这个文件夹没有问题,启动程序依然正常。

但是你如果用代码删除,在Bootstrap.cs中加入下面代码

/// <summary>
/// 清除Cookies等缓存数据
/// </summary>
/// <returns></returns>
public static void DeleteCacheDirectory()
{
    if (System.IO.Directory.Exists(CacheDirectory))
    {
        System.IO.Directory.Delete(CacheDirectory, true);
    }
}


添加扩展出现的问题

在 Main 方法中调用 Bootstrap.DeleteCacheDirectory()  那么就会出现,鼠标图标不停的转圈,页面根本加载不出来,页面一片白板。

这个不行?那么,用另外一种方法,在程序退出的时候,或者在界面加载的时候,删除缓存路径不就行了?调用Bootstrap.DeleteCacheDirectory(),运行,结果就可能出现下面错误

The process cannot access the file 'Visited Links' because it is being used by another process.

显示内存已经被占用,好家伙。


解决问题

后面我查了很多的帖子,用下面的方法解决了问题,

使用CommandLine 命令,禁止浏览器进行缓存:

cmd.AppendSwitch("disable-application-cache");

cmd.AppendSwitch("disable-session-storage");

经过测试,Cookie一类的数据,使用JS设置是无法保存的。

如果你有更好的方法,欢迎给我留言...

using NetDimension.NanUI;
using System;
using System.Threading;
using System.Windows.Forms;
using Utils;
 
namespace NanUI077_SourceCode
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
 
            Bootstrap
            .Initialize()
            
            //读取本地资源
            .UseClockResourceHandler(ResourceHandlerScheme.Http, "www.app.local", "View")
 
            .WithChromiumCommandLineArguments((procesName, cmd) =>
            {
                // 在此处处理CEF的命令行参数
                cmd.AppendSwitch("disable-application-cache");
                cmd.AppendSwitch("disable-session-storage");
            })
            .WithChromiumSettings(settings =>
            {
                // 在此处处理CEF的设置
            })
            .WhenLibCefNotFound(args =>
            {
                // 如果NanUI启动器没有检测到正确的CEF以及ChromiumFX运行环境,将执行此处理过程。
                MessageBox.Show("没有检测到Chromium Embedded运行环境,请确认libcef环境配置正确。", "libcef.dll is not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
            })
            .Run(() =>
            {
                return new MainIndex();
            });
        }
    }
}

CommandLine 命令,官方的地址:List of Chromium Command Line Switches « Peter Beverloo


结束

如果这个帖子对你有用,欢迎 关注 + 点赞 + 留言,谢谢

end


原文链接Winform NanUI 0.77版本 清除Cookie等本地缓存_winform appdata-CSDN博客

猜你喜欢

【C#】C#md5加密
using&nbsp;System; using&nbsp;System.Collections.Generic; using&nbsp;System.Linq; using&nbsp;System.Security.Cryptography; using&nbsp;System.Text; using&nbsp;System.Threading.Tasks; &nbsp; namespace&nbsp;mdstr { &nbsp;&nbsp;&nbsp;&nbsp;internal&nbsp;
发表于:2024-01-30 浏览:267 TAG:
【C#】C# Winfrom 右键菜单
目录一、概述二、新建&nbsp;winform 项目三、给图片控件添加右键菜单四、给菜单添加点击事件五、测试结束一、概述ContextMenuStrip 是 Windows 窗体应用程序中的一个控件,它提供了一个弹出菜单,用于在用户右键单击控件或其他界面元素时显示上下文相关的选项。它通常用于在图形用户界面中提供快捷操作和功能。ContextMenuStrip 控件可以通过在 Visual Studio 的设计器中拖放方式添加到窗体上,或者通过编程方式创建和配置。它可以与其他控件(如按钮、文本框等
发表于:2024-02-02 浏览:354 TAG:
【C#】C#Windows桌面应用开发实践
速览必须功能一览简单下载异步下载如何解决下载文件不完整的问题使用 Downloader 进行 HTTP 多线程下载创建一个下载服务:下载非 HTTP 协议的文件注册表相关的操作(添加与删除)文件占用问题的处理防止重复启动只开一个实例,通用弹窗和提示 使用示例使用 C# 下载文件 (引用自使用 C# 下载文件的十八般武艺)常用接口示例必须功能一览注册表相关的操作(添加与删除)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RegistryKey&nbsp;hkm
发表于:2024-01-28 浏览:362 TAG:
【C#】C# Winform 自定义进度条ProgressBar
效果:一、前言Winfrom各种老毛病真的不适合做大型项目,甚至中型项目都不适合,一些小功能都能把你折腾半死,比如,我想在界面上显示一个进度条,用来显示现在硬盘和内存已经使用了多少,使用了 ProgressBar 控件你看看效果:进度条中间一直有个白色光影在晃来晃去的,是不是想让别人感慨:“哇!好强的光芒,我的眼睛快睁不开了...”。而且背景颜色无法改变,这个动画也无法关掉,为了解决这两个问题,我找了很久,终于找到了下面的解决方法。二、自定义进度条于是我在网上找了一些资料,有到效果有,但不是特别
发表于:2024-02-01 浏览:325 TAG:
【C#】从零开始用C#写一个桌面应用程序(二)一个表白程序
恶搞表白小程序如何添加按钮,如何添加属性和事件请移步前文。基础操作第一步:新建窗口&nbsp;&nbsp;在工具箱内找到label和button,拖到form上,设置它们的size属性,autosize属性,text属性。第二步:添加事件为了实现我们的效果,需要给三个按钮分别设计点击事件,鼠标移入事件,鼠标点下事件。分别为click,mouseenter,mousedown事件。第三步:实现移动逻辑this获取form对象,clientsize获取实时大小,使用随机数值,设置对应按钮位置。将对应
发表于:2024-01-30 浏览:294 TAG:
【C#】C# Winform 多个程序之间的通信(非Scoket)
效果功能:打开窗体自动连接主程序,并自动添加到列表,可以向子程序群发消息可以向单个程序单独发送消息在退出程序后,添加的程序列表会自动移除一、概述参考:C# Winfrom程序之间通讯_c# sendmessege copydatastruct 返回多个值_熊思宇的博客-CSDN博客在之前我写过 winform 程序与程序之间的通信,但是这个版本有个问题,那就是只能由两个程序进行通信,同时打开多个程序的话,接收方收到的数据就会一模一样,这次发表这个教程,也就是要解决这个问题。归根结底,还是&amp;nbs
发表于:2024-02-03 浏览:295 TAG:
【C#】C# Winform GDI+ 绘图
目录一、概述二、绘图1.画直线2.画矩形3.画圆、圆弧4.画扇形5.画多边形6.绘制字符串7.填充图形结束一、概述Graphics类是GDI+技术的一个基本类。GDI+(Graphics Device Interface)是.NET框架的重要组成部分,提供对二维图形图像和文字排版处理的支持。GDI+相关的类分布在下列命名空间中: System.Drawing:提供了最基本的绘图功能(比如画直线、矩形、椭圆等); System.Drawing.Drawing2D: 提供了高级的二维和矢量绘图功能(
发表于:2024-02-18 浏览:379 TAG:
【C#】Winform NanUI 0.77版本 清除Cookie等本地缓存
目录需求NanUI0.88版本的缓存路径NanUI0.77版本的缓存路径试着实现功能添加扩展出现的问题解决问题结束需求清除web前端保存的一些的数据,或者清除浏览器缓存会用到。NanUI0.88版本的缓存路径在NanUI0.88版本中,只要在Program.cs启动模块中调用app.ClearCacheFile();就可以清除浏览的缓存了。0.88版本的缓存路径:&quot;C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Stu
发表于:2024-02-08 浏览:308 TAG:
【C#】C# Winform ListView用法
目录添加标题显示网格添加数据到表格中自定义其他属性结束添加标题在 Winfrom 界面中添加一个 ListView 组件,然后点击右上角的箭头,点击编辑列添加下面标题,然后点击确定此时 ListView 中还是一片空白,不能显示这些标题,在视图这里选择 Details就会如下图所示,虽然标题出来了,内容确实一块白版,此时还是觉得 DataGridView 组件好用啊显示网格此时,表格只是一片空白,可以在属性面板中设置,显示网格,如下图&nbsp;&nbsp;这时,就如下图所示,效果就出来了,但是
发表于:2024-01-31 浏览:367 TAG:
【C#】C# NLua Winform 热更新
一、概述NLua 是一个用于 .NET 平台的 Lua 脚本绑定库。它允许在 C# 代码中嵌入 Lua 脚本,并允许两者之间进行交互。NLua 的主要特点包括:轻量级:NLua 是一个轻量级的库,易于集成到现有的 .NET 项目中。动态类型:Lua 是动态类型的语言,这意味着变量的类型可以在运行时改变。灵活的绑定:NLua 提供了灵活的绑定机制,使得 C# 和 Lua 之间的数据交互变得简单。丰富的 API:NLua 提供了丰富的 API,以便在 Lua 脚本中调用 .NET 的类和方法。调试支
发表于:2024-02-18 浏览:342 TAG: