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

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

CrazyPanda发表于:2024-02-08 23:43:58浏览:318次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# Winfrom 右键菜单
目录一、概述二、新建&nbsp;winform 项目三、给图片控件添加右键菜单四、给菜单添加点击事件五、测试结束一、概述ContextMenuStrip 是 Windows 窗体应用程序中的一个控件,它提供了一个弹出菜单,用于在用户右键单击控件或其他界面元素时显示上下文相关的选项。它通常用于在图形用户界面中提供快捷操作和功能。ContextMenuStrip 控件可以通过在 Visual Studio 的设计器中拖放方式添加到窗体上,或者通过编程方式创建和配置。它可以与其他控件(如按钮、文本框等
发表于:2024-02-02 浏览:364 TAG:
【C#】C# Winform 多个程序之间的通信(非Scoket)
效果功能:打开窗体自动连接主程序,并自动添加到列表,可以向子程序群发消息可以向单个程序单独发送消息在退出程序后,添加的程序列表会自动移除一、概述参考:C# Winfrom程序之间通讯_c# sendmessege copydatastruct 返回多个值_熊思宇的博客-CSDN博客在之前我写过 winform 程序与程序之间的通信,但是这个版本有个问题,那就是只能由两个程序进行通信,同时打开多个程序的话,接收方收到的数据就会一模一样,这次发表这个教程,也就是要解决这个问题。归根结底,还是&amp;nbs
发表于:2024-02-03 浏览:306 TAG:
【C#】C# Winfrom 常用功能整合-2
目录Winfrom&nbsp;启动一个外部exe文件,并传入参数Winform ListBox用法HTTP下载文件(推荐)Winform HTTP下载并显示进度Winform&nbsp;HTTP下载文件Winform&nbsp;跨线程访问UI组件Winform 改变文字的颜色和大小Winfrom&nbsp;启动一个外部exe文件,并传入参数在我们常用的一些软件中,经常有些软件,双击之后根本打不开,这是因为启动时做了限制,我们需要传入一些参数才能打开,在工作中,这个需求也可以用在软件的自动更新上,
发表于:2024-02-02 浏览:341 TAG:
【C#】Winform NanUI 相关功能整合
目录NanUI 0.88版本 去掉启动界面(遮罩)NanUI 0.88版本 读取本地资源和嵌入式资源NanUI 0.77版本 打开控制台NanUI 0.77版本 C#调用多个参数的JS方法NanUI 0.77版本 传递数组参数NanUI 0.77版本 设置窗体全屏显示(类似Kiosk模式)NanUI 0.77版本 Bootstrap类 APINanUI 0.88版本 去掉启动界面(遮罩)启动界面是作者给我们显示公司产品的Logo用的,如果用不着可以去掉,但必须要更改源码,如果不想改源码,直接将启
发表于:2024-02-09 浏览:380 TAG:
【C#】从零开始用C#写一个桌面应用程序(一)基础操作
准备winform应用程序编写桌面应用客户端的技术。xaml一种标记语言。winform程序组成。&nbsp;程序入口:&nbsp;form.cs和它的设计文件:&nbsp;&nbsp;启动的过程以及涉及的文件:main函数:&nbsp;form1的构造函数和它的设计文件:&nbsp;&nbsp;&nbsp; main-》构造form-》initializeComponent-》&nbsp;拖入一个 button控件可以看到:&nbsp;这时我们已经梳理启动过程。使用组件的方法&nbsp;可以在
发表于:2024-01-30 浏览:498 TAG:
【C#】C# Winform ListView用法
目录添加标题显示网格添加数据到表格中自定义其他属性结束添加标题在 Winfrom 界面中添加一个 ListView 组件,然后点击右上角的箭头,点击编辑列添加下面标题,然后点击确定此时 ListView 中还是一片空白,不能显示这些标题,在视图这里选择 Details就会如下图所示,虽然标题出来了,内容确实一块白版,此时还是觉得 DataGridView 组件好用啊显示网格此时,表格只是一片空白,可以在属性面板中设置,显示网格,如下图&nbsp;&nbsp;这时,就如下图所示,效果就出来了,但是
发表于:2024-01-31 浏览:379 TAG:
【C#】C#二分查找(迭代与递归)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;二分搜索被定义为一种在排序数组中使用的搜索算法,通过重复将搜索间隔一分为二。二分查找的思想是利用数组已排序的信息,将时间复杂度降低到O(log N)。二分查找算法示例&nbsp;何时在数据结构中应用二分查找的条件: 应用二分查找算法: &nbsp; &nbsp; &nbsp; &nbsp; 1、数据结构必须是有序的。 &nbsp; &nbsp; &nbsp; &nbsp; 2、访问数据结构的任何元素都
发表于:2024-03-11 浏览:315 TAG:
【C#】C# Winform Label 控件
目录一、概述二、基本用法1.控件内容显示2.控件的外观3.自定义控件的大小4.控件的内边距&nbsp;5.设置文本的固定位置6.控件的事件结束一、概述Label 控件是 winform 开发中最常用的一个控件,一般用做显示文本,也有时用做打开链接等操作。二、基本用法新建一个 winform 项目,点击 form1 界面,找到工具箱,在工具箱里找到 Label ,拖入到界面即可。1.控件内容显示label 拖入界面中,如下,单击在属性界面就能看到具体的控件属性在这里有两个重要的属性:1.Name在
发表于:2024-02-04 浏览:300 TAG:
【C#】C# Winform SplitContainer组件创建侧边菜单
效果一,SplitContainer 基本操作新建一个 Winform 项目,在Form1中拖进一个 SplitContainer 组件默认的界面如下这时候,你会发现,左侧菜单栏的宽度也太宽了吧,按照以前的经验,你一定会用鼠标去拖拽,这时候你就会发现,鼠标根本拖不动,不信你可以试试这时候,我们按Esc键,鼠标再移动到边框的时候,鼠标图标就会变成一个 “+” 状的图标,这时候就可以拖拽了此时,左侧的Panel1内还没有任何组件,运行后的效果我们添加一个按钮到&nbsp;Panel1 试试运行后发现
发表于:2024-02-01 浏览:550 TAG:
【C#】C#实现Excel合并单元格数据导入数据集
目录功能需求Excel与DataSet的映射关系范例运行环境Excel DCOM 配置设计实现组件库引入方法设计返回值&nbsp;参数设计打开数据源并计算Sheets拆分合并的单元格创建DataTable将单元格数据写入DataTable总结功能需求将Excel里的worksheet表格导入到DataSet里,是项目应用里常用的一种操作。一般情况下,worksheet是一个标准的二维数组,如下图:我们可以效仿 MS SQL SERVER 的一些基本导入选项,如首行是否包含数据,要导入哪个Shee
发表于:2024-01-29 浏览:356 TAG: