摘要: 由于xml文件的易读特性,使得它非常适合作为程序配置文件。和ini文件相比,xml文件可以实现列表等复杂参数配置,灵活性比较大。 使用C#读取xml文件,首先要加载xml文件获取XmlDocument对象,然后通过该对象获取XmlNode类型的根节点,之后再对根节点获取相应子节点的属性或值。写入xm 阅读全文
posted @ 2024-03-12 15:44 xhubobo 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 使用C#读写ini文件要用到Windows的API函数:GetPrivateProfileString、WritePrivateProfileString,下面对该方法进行封装并以具体ini文件为例说明如何读写。 1、ini文件示例 ; FTP服务器参数 [FtpServer] IP=127.0.0 阅读全文
posted @ 2024-03-09 16:57 xhubobo 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 最近在触屏Win10中需要调用osk.exe 显示虚拟键盘,其路径为:C:\Windows\System32\osk.exe。由于软件是32位的,在使用Process.Start方法时系统默认启用了文件系统重定向,将其指向路径:C:\Windows\SysWoW64\osk.exe,造成找不到文件。 阅读全文
posted @ 2024-03-05 16:43 xhubobo 阅读(70) 评论(0) 推荐(0) 编辑
摘要: Aforge.Video是可以方便获取摄像头等视频输入设备图像的轻量级组件,但是该组件的最新版本2.2.5大约是在2013年发布的,仅支持.Net Framework,在基于.Net6的Winform中无法使用。 Aforge.Video组件存在开源项目AForge.NET中,该项目有1k Star 阅读全文
posted @ 2024-02-22 10:25 xhubobo 阅读(71) 评论(0) 推荐(0) 编辑
摘要: internal class MessageOnlyWindow : NativeWindow { private const string WindowName = "MessageOnlyWindow"; public LowLevelView() { var createParams = ne 阅读全文
posted @ 2024-02-21 10:08 xhubobo 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 1、用户控件的子控件不刷新 场景:创建一个用户控件用于显示Label信息,在主窗口上添加这个用户控件,然后在非UI线程中更新数据后使用SynchronizationContext.Post更新用户控件中的Label。 现象:用户控件中的Label不更新,在日志中打印该Label的值,其实是最新值。 阅读全文
posted @ 2024-01-24 18:24 xhubobo 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1、获取桌面路径 import os desktop_path = os.path.join(os.path.expanduser('~'), 'Desktop') print('desktop_path: ' + desktop_path) 2、读写文件 #写入文件 file = open(ful 阅读全文
posted @ 2024-01-24 09:00 xhubobo 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1、DoubleAnimation private void RunAnimation( UIElement element, DependencyProperty dp, double oldValue, double newValue, double durationMs ) { var dur 阅读全文
posted @ 2024-01-23 10:18 xhubobo 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 参考资料:VlcVideoSourceProvider 优点:实现视频流的动态处理。 缺点:视频解码(CPU/GPU)后图像处理CPU占用率高,视频有可能会卡顿(卡顿已解决,详见改进)。 在Winform中通过LibVLCSharp组件获取视频流中的每一帧图像,需要设置回调函数,主要是SetVide 阅读全文
posted @ 2023-11-06 10:29 xhubobo 阅读(796) 评论(2) 推荐(0) 编辑
摘要: 将枚举型的数据类型绑定到单选按钮的IsChecked属性中,可以避免定义多个bool类型与之进行绑定,尤其是枚举类型较多时候,对bool对象的维护会更加复杂。 1、定义枚举类型及值转换器 internal enum Gender { [Description("男")] Male, [Descrip 阅读全文
posted @ 2023-08-21 10:34 xhubobo 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 开发环境:VS2022 + Winform(.Net Framework 4.6.1),Winform项目A,依赖类库B。 第一步,通过Nuget安装Obfuscar。 第二步,创建obfuscar.xml文件,设置为“如果较新则复制”,其内容如下: <?xml version='1.0'?> <O 阅读全文
posted @ 2023-04-13 09:05 xhubobo 阅读(1254) 评论(0) 推荐(0) 编辑
摘要: ChatGPT作为基于AI的聊天工具,其用途涉及到很多方面,个人认为其最大的用途莫过于作为多种行业的知识库,并能够通过AI技术给出特定行业技术的参考实现,是一个功能强大的知识库、搜索引擎。鉴于此,我基于.Net技术栈制作了ChatGPT搜索助手,其架构如下所示: ChatGPT搜索助手包含3部分内容 阅读全文
posted @ 2023-04-06 15:54 xhubobo 阅读(311) 评论(7) 推荐(1) 编辑
摘要: 本文展示了如何使用MathNet.Numerics对离散点进行曲线拟合,计算其R^2值,并基于Winform使用SkiaSharp.Views.WindowsForms绘制曲线及离散点,上述组件可从NuGet获取。 1、曲线拟合 使用Fit.Polynomial方法获取拟合后的多项式系数数组,其参数 阅读全文
posted @ 2023-03-07 14:53 xhubobo 阅读(2200) 评论(12) 推荐(0) 编辑
摘要: FFmpeg通过控制台命令可以方便地录制USB摄像头和屏幕,本文使用C#中的Process类调用FFmpeg命令,并通过获取控制台输出参数实现录制视频的完整功能。 Gitee完整代码:FFmpegWrappedSharpRecorder。 1、获取设备列表 FFmpeg命令: ffmpeg.exe 阅读全文
posted @ 2023-02-07 14:35 xhubobo 阅读(1345) 评论(0) 推荐(0) 编辑
摘要: 在WPF中可以使用LibVLCSharp.WinForms、Emgu.CV组件直接播放RTSP流。 1、LibVLCSharp.WinForms (1) 引入NuGet包 LibVLCSharp.WinForms。 (2) 准备工作 public VlcVideoControl() { Initia 阅读全文
posted @ 2023-01-28 14:42 xhubobo 阅读(2659) 评论(0) 推荐(0) 编辑