随笔分类 - .NET
摘要:本文主要介绍摄像头(相机)如何采集数据,用于类似摄像头本地显示软件,以及流媒体数据传输场景如传屏、视讯会议等。 摄像头采集有多种方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),网上一些文章以及
阅读全文
摘要:大屏Windows设置网卡开启热点后,经常收到反馈,手机端无法搜索到大屏热点、或者手机连接大屏热点失败 这类问题一般有以下几类情况: 1. 物理网卡IP与热点网卡IP相同 2. 热点网卡IP,非正常热点IP(192.168.137.X) 热点IP我们一般定为192.168.137.X,192.168
阅读全文
摘要:本文介绍Windows下声音数据的采集,用于本地录音、视讯会议、投屏等场景 声音录制有麦克风、扬声器以及混合录制三类方式,麦克风和扬声器单独录制的场景更多点,混合录制更多的是用于本地录音 我们基于NAudio实现,开源组件NAudio已经很稳定的实现了各类播放、录制、转码等功能,WaveIn,Wav
阅读全文
摘要:本文主要介绍WPF应用对鼠标输入、触摸屏触笔以及触摸事件的封装 之前有简单说明设备输入类型 WPF 屏幕点击的设备类型 - 唐宋元明清2188 - 博客园 (cnblogs.com) 1、鼠标 - 通过Mouse相关的事件参数MouseButtonEventArgs中的数据,e.StylusDeci
阅读全文
摘要:我们.NET开发会引用很多外部Nuget包,多项目、多个解决方案、甚至多个仓库。 简单的Nuget包管理,通过VS就能比较简单处理好。但复杂的场景呢,比如: 1.一个仓库里,有多个解决方案的Nuget包管理 -- 我现在项目就是这样的,针对会议大屏的全家桶软件集代码仓库。这个仓库里,接近30个工具/
阅读全文
摘要:窗口/屏幕截图适用于截图、批注等工具场景,时时获取窗口/屏幕图像数据流呢,下面讲下视频会议共享桌面、远程桌面这些场景是如何实现画面录制的。 常见的屏幕画面时时采集方案,主要有GDI、WGC、DXGI。 GDI GDI(Graphics Device Interface)就是使用user32下Wind
阅读全文
摘要:图像采集源除了显示控件(上一篇《.NET 控件转图片》有介绍从界面控件转图片),更多的是窗口以及屏幕。 窗口截图最常用的方法是GDI,直接上Demo吧: 1 private void GdiCaptureButton_OnClick(object sender, RoutedEventArgs e)
阅读全文
摘要:Windows应用开发有很多场景需要动态获取控件显示的图像,即控件转图片,用于其它界面的显示、传输图片数据流、保存为本地图片等用途。 下面分别介绍下一些实现方式以及主要使用场景 RenderTargetBitmap 控件转图片BitmapImage/BitmapSource,在WPF中可以使用Ren
阅读全文
摘要:做.NET应用开发肯定会用到网络通信,而进程间通信是客户端开发使用频率较高的场景。 进程间通信方式主要有命名管道、消息队列、共享内存、Socket通信,个人使用最多的是Sokcet相关。 而Socket也有很多使用方式,Socket、WebSocket、TcpClient、UdpClient,是不是
阅读全文
摘要:Windows应用软件开发,会有很多常用的模块,比如数据库、配置文件、日志、后台通信、进程通信、埋点、浏览器等等。下面是目前我们公司windows梳理的部分组件,梳理出来方便大家了解组件概念以及依赖关系: 每个应用里,现在或者以后都可能会存在这些模块。以我团队开发的全家桶为例,十多个应用对后台访问,
阅读全文
摘要:windows字符编码 不同语言下有不同编码 Encoding.CodePage Property (System.Text) | Microsoft Learn 公司大屏反馈有U盘乱码问题,发现修改系统的语言、地区,并不会同步修改编码。 编码可以手动修改,在Win11系统设置-时间和语言-管理语言
阅读全文
摘要:触摸等快速移动WPF元素时,因元素无法跟上元素移动速度,后续的移动事件无法触发导致移动操作停顿。 这时候调用CaptureMouse捕获设备焦点,就可以支持设备快速移动操作。 设备输入有三种鼠标、触笔、触摸,所以对应的设备焦点捕获也有三类:CaptureMouse、CaptureStylus、Cap
阅读全文
摘要:在C#中,进行JSON序列化和反序列化有多种方案可供选择,常用的是下面俩个 System.Text.Json:这是.NET Core和.NET 5中内置的JSON序列化和反序列化库,提供了高性能和低内存消耗的JSON处理能力。 Newtonsoft.Json:这是一个流行的第三方JSON处理库,广泛
阅读全文
摘要:windows大屏使用场景,关闭显示器是一个常用操作。 操作系统提供了相应的API,应用层调用: 1 //广播消息,所有顶级窗体都会接收 2 private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff); 3 //系统消息 4
阅读全文
摘要:上一篇《Nuget 输出资源文件 - 唐宋元明清2188 - 博客园 (cnblogs.com)》有介绍如何输出Nuget中资源文件 团队小伙伴说,组件附带的资源文件太大了,有些场景引用不需要输出。 那如何针对项目上的引用,设置Nuget包不输出资源文件? 如下面截图所示,Nuget包有.pakca
阅读全文
摘要:组件经常有一些文件/环境依赖,提升内聚,可以将文件(exe、dll等)放在到Nuget包内自动输出、启动相应的环境 通过csproj文件配置,Nuget包自动输出到编译目录下。 如上图,vcomp140d.dll是Nuget包内的文件。项目NugetContentFilesDemo引用NugetCo
阅读全文
摘要:公司业务上需要对图片显示优化。比如获取到本地应用ICON,8K分辨率下有些logo显示不清晰。 我们可以通过图片超分,提高显示质量。这里整理下最优的图片超分操作 这里用到的是腾讯Real-Esrgan,经过验证realesrgan-x4plus-anime对图片优化情况最好。 ESGRAN,是深度学
阅读全文
摘要:在.NET6项目中,不再支持Thread.Abort:Thread.Abort is not supported and throws PlatformNotSupportedException. 原因是Thread.Abort可能导致资源泄漏, 1. 不正常的关闭,导致线程运行过程中待释放资源的业
阅读全文
摘要:我们连接的WIFI,属性设置里有自动分配IP的选项。 我们通过控制台输入ipconfig,看到当前IP是10.214.18.178 那自动分配IP范围是多少?路由器对IP是怎么分配的。下面是我整理的code,有需要的可以直接Copy IP范围获取: 1 private void RefreshBut
阅读全文
摘要:Windows在某些情况(系统文件损坏、注册表错误、驱动不兼容等)下,桌面图标间距变得超大,占满整个桌面。 整理下,C#按如下方式修复 1 using var windowMetrics = Registry.CurrentUser.CreateSubKey(@"Control Panel\Desk
阅读全文

浙公网安备 33010602011771号