当前位置: 首页 > news >正文

【C#】获取电脑CPU、内存、屏幕、磁盘等信息

通过WMI类来获取电脑各种信息,参考文章:WMI_04_常见的WMI类的属性_wmi scsilogicalunit_fantongl的博客-CSDN博客

自己整理了获取电脑CPU、内存、屏幕、磁盘等信息的代码

 #region 系统信息/// <summary>/// 电脑信息/// </summary>public partial class ComputerInfo{/// <summary>/// 系统版本/// <para>示例:Windows 10 Enterprise</para>/// </summary>public static string OSProductName { get; } = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", 0);/// <summary>/// 操作系统版本/// <para>示例:Microsoft Windows 10.0.18363</para>/// </summary>public static string OSDescription { get; } = System.Runtime.InteropServices.RuntimeInformation.OSDescription;/// <summary>/// 操作系统架构(<see cref="Architecture">)/// <para>示例:X64</para>/// </summary>public static string OSArchitecture { get; } = System.Runtime.InteropServices.RuntimeInformation.OSArchitecture.ToString();/// <summary>/// 获取系统信息/// </summary>/// <returns></returns>public static SystemInfo GetSystemInfo(){SystemInfo systemInfo = new SystemInfo();var osProductName = OSProductName.Trim().Replace(" ", "_");var osVersionNames = Enum.GetNames(typeof(OSVersion)).ToList();for (int i = 0; i < osVersionNames.Count; i++){var osVersionName = osVersionNames[i];if (osProductName.Contains(osVersionName)){systemInfo.OSVersion = (OSVersion)Enum.Parse(typeof(OSVersion), osVersionName);systemInfo.WindowsVersion = osProductName.Replace(osVersionName, "").Replace("_", " ");}}systemInfo.WindowsVersionNo = OSDescription;systemInfo.Architecture = OSArchitecture;return systemInfo;}}/// <summary>/// 系统信息/// </summary>public class SystemInfo{/// <summary>/// 系统版本。如:Windows 10/// </summary>public string WindowsVersion { get; set; }/// <summary>/// 系统版本。如:专业版/// </summary>public OSVersion OSVersion { get; set; }/// <summary>/// Windows版本号。如:Microsoft Windows 10.0.18363/// </summary>public string WindowsVersionNo { get; set; }/// <summary>/// 操作系统架构。如:X64/// </summary>public string Architecture { get; set; }}/// <summary>/// 系统客户版本/// </summary>public enum OSVersion{/// <summary>/// 家庭版/// </summary>Home,/// <summary>/// 专业版,以家庭版为基础/// </summary>Pro,Professional,/// <summary>/// 企业版,以专业版为基础/// </summary>Enterprise,/// <summary>/// 教育版,以企业版为基础/// </summary>Education,/// <summary>/// 移动版/// </summary>Mobile,/// <summary>/// 企业移动版,以移动版为基础/// </summary>Mobile_Enterprise,/// <summary>/// 物联网版/// </summary>IoT_Core,/// <summary>/// 专业工作站版,以专业版为基础/// </summary>Pro_for_Workstations}#endregion#region CPU信息public partial class ComputerInfo{/// <summary>/// CPU信息/// </summary>/// <returns></returns>public static CPUInfo GetCPUInfo(){var cpuInfo = new CPUInfo();var cpuInfoType = cpuInfo.GetType();var cpuInfoFields = cpuInfoType.GetProperties().ToList();var moc = new ManagementClass("Win32_Processor").GetInstances();foreach (var mo in moc){foreach (var item in mo.Properties){if (cpuInfoFields.Exists(f => f.Name == item.Name)){var p = cpuInfoType.GetProperty(item.Name);p.SetValue(cpuInfo, item.Value);}}}return cpuInfo;}}/// <summary>/// CPU信息/// </summary>public class CPUInfo{/// <summary>/// 操作系统类型,32或64/// </summary>public uint AddressWidth { get; set; }/// <summary>/// 处理器的名称。如:Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz/// </summary>public string Name { get; set; }/// <summary>/// 处理器的当前实例的数目。如:4。4核/// </summary>public uint NumberOfEnabledCore { get; set; }/// <summary>/// 用于处理器的当前实例逻辑处理器的数量。如:4。4线程/// </summary>public uint NumberOfLogicalProcessors { get; set; }/// <summary>/// 系统的名称。计算机名称。如:GREAMBWANG/// </summary>public string SystemName { get; set; }}#endregion#region 内存信息public partial class ComputerInfo{/// <summary>/// 内存信息/// </summary>/// <returns></returns>public static RAMInfo GetRAMInfo(){var ramInfo = new RAMInfo();var totalPhysicalMemory = TotalPhysicalMemory;var memoryAvailable = MemoryAvailable;var conversionValue = 1024.0 * 1024.0 * 1024.0;ramInfo.TotalPhysicalMemoryGBytes = Math.Round((double)(totalPhysicalMemory / conversionValue), 1);ramInfo.MemoryAvailableGBytes = Math.Round((double)(memoryAvailable / conversionValue), 1);ramInfo.UsedMemoryGBytes = Math.Round((double)((totalPhysicalMemory - memoryAvailable) / conversionValue), 1);ramInfo.UsedMemoryRatio = (int)(((totalPhysicalMemory - memoryAvailable) * 100.0) / totalPhysicalMemory);return ramInfo;}/// <summary>/// 总物理内存(B)/// </summary>/// <returns></returns>public static long TotalPhysicalMemory{get{long totalPhysicalMemory = 0;ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){if (mo["TotalPhysicalMemory"] != null){totalPhysicalMemory = long.Parse(mo["TotalPhysicalMemory"].ToString());}}return totalPhysicalMemory;}}/// <summary>/// 获取可用内存(B)/// </summary>public static long MemoryAvailable{get{long availablebytes = 0;ManagementClass mos = new ManagementClass("Win32_OperatingSystem");foreach (ManagementObject mo in mos.GetInstances()){if (mo["FreePhysicalMemory"] != null){availablebytes = 1024 * long.Parse(mo["FreePhysicalMemory"].ToString());}}return availablebytes;}}}/// <summary>/// 内存信息/// </summary>public class RAMInfo{/// <summary>/// 总物理内存(GB)/// </summary>public double TotalPhysicalMemoryGBytes { get; set; }/// <summary>/// 获取可用内存(GB)/// </summary>public double MemoryAvailableGBytes { get; set; }/// <summary>/// 获取已用内存(GB)/// </summary>public double UsedMemoryGBytes { get; set; }/// <summary>/// 内存使用率/// </summary>public int UsedMemoryRatio { get; set; }}#endregion#region 屏幕信息public partial class ComputerInfo{/// <summary>/// 屏幕信息/// </summary>public static GPUInfo GetGPUInfo(){GPUInfo gPUInfo = new GPUInfo();gPUInfo.CurrentResolution = MonitorHelper.GetResolution();gPUInfo.MaxScreenResolution = GetGPUInfo2();return gPUInfo;}/// <summary>/// 获取最大分辨率/// </summary>/// <returns></returns>private static Size GetMaximumScreenSizePrimary(){var scope = new System.Management.ManagementScope();var q = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");UInt32 maxHResolution = 0;UInt32 maxVResolution = 0;using (var searcher = new System.Management.ManagementObjectSearcher(scope, q)){var results = searcher.Get();foreach (var item in results){if ((UInt32)item["HorizontalResolution"] > maxHResolution)maxHResolution = (UInt32)item["HorizontalResolution"];if ((UInt32)item["VerticalResolution"] > maxVResolution)maxVResolution = (UInt32)item["VerticalResolution"];}}return new Size((int)maxHResolution, (int)maxVResolution);}/// <summary>/// 获取最大分辨率2/// CurrentHorizontalResolution:1920/// CurrentVerticalResolution:1080/// </summary>/// <returns></returns>public static Size GetGPUInfo2(){var gpu = new StringBuilder();var moc = new ManagementObjectSearcher("select * from Win32_VideoController").Get();var currentHorizontalResolution = 0;var currentVerticalResolution = 0;foreach (var mo in moc){foreach (var item in mo.Properties){if (item.Name == "CurrentHorizontalResolution" && item.Value != null)currentHorizontalResolution = int.Parse((item.Value.ToString()));if (item.Name == "CurrentVerticalResolution" && item.Value != null)currentVerticalResolution = int.Parse((item.Value.ToString()));//gpu.Append($"{item.Name}:{item.Value}\r\n");}}//var res = gpu.ToString();//return res;return new Size(currentHorizontalResolution, currentVerticalResolution);}}public class MonitorHelper{/// <summary>/// 获取DC句柄/// </summary>[DllImport("user32.dll")]static extern IntPtr GetDC(IntPtr hdc);/// <summary>/// 释放DC句柄/// </summary>[DllImport("user32.dll", EntryPoint = "ReleaseDC")]static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hdc);/// <summary>/// 获取句柄指定的数据/// </summary>[DllImport("gdi32.dll")]static extern int GetDeviceCaps(IntPtr hdc, int nIndex);/// <summary>/// 获取设置的分辨率(修改缩放,该值不改变)/// {Width = 1920 Height = 1080}/// </summary>/// <returns></returns>public static Size GetResolution(){Size size = new Size();IntPtr hdc = GetDC(IntPtr.Zero);size.Width = GetDeviceCaps(hdc, DeviceCapsType.DESKTOPHORZRES);size.Height = GetDeviceCaps(hdc, DeviceCapsType.DESKTOPVERTRES);ReleaseDC(IntPtr.Zero, hdc);return size;}/// <summary>/// 获取屏幕物理尺寸(mm,mm)/// {Width = 476 Height = 268}/// </summary>/// <returns></returns>public static Size GetScreenSize(){Size size = new Size();IntPtr hdc = GetDC(IntPtr.Zero);size.Width = GetDeviceCaps(hdc, DeviceCapsType.HORZSIZE);size.Height = GetDeviceCaps(hdc, DeviceCapsType.VERTSIZE);ReleaseDC(IntPtr.Zero, hdc);return size;}/// <summary>/// 获取屏幕的尺寸---inch/// 21.5/// </summary>/// <returns></returns>public static float GetScreenInch(){Size size = GetScreenSize();double inch = Math.Round(Math.Sqrt(Math.Pow(size.Width, 2) + Math.Pow(size.Height, 2)) / 25.4, 1);return (float)inch;}}/// <summary>/// GetDeviceCaps 的 nidex值/// </summary>public class DeviceCapsType{public const int DRIVERVERSION = 0;public const int TECHNOLOGY = 2;public const int HORZSIZE = 4;//以毫米为单位的显示宽度public const int VERTSIZE = 6;//以毫米为单位的显示高度public const int HORZRES = 8;public const int VERTRES = 10;public const int BITSPIXEL = 12;public const int PLANES = 14;public const int NUMBRUSHES = 16;public const int NUMPENS = 18;public const int NUMMARKERS = 20;public const int NUMFONTS = 22;public const int NUMCOLORS = 24;public const int PDEVICESIZE = 26;public const int CURVECAPS = 28;public const int LINECAPS = 30;public const int POLYGONALCAPS = 32;public const int TEXTCAPS = 34;public const int CLIPCAPS = 36;public const int RASTERCAPS = 38;public const int ASPECTX = 40;public const int ASPECTY = 42;public const int ASPECTXY = 44;public const int SHADEBLENDCAPS = 45;public const int LOGPIXELSX = 88;//像素/逻辑英寸(水平)public const int LOGPIXELSY = 90; //像素/逻辑英寸(垂直)public const int SIZEPALETTE = 104;public const int NUMRESERVED = 106;public const int COLORRES = 108;public const int PHYSICALWIDTH = 110;public const int PHYSICALHEIGHT = 111;public const int PHYSICALOFFSETX = 112;public const int PHYSICALOFFSETY = 113;public const int SCALINGFACTORX = 114;public const int SCALINGFACTORY = 115;public const int VREFRESH = 116;public const int DESKTOPVERTRES = 117;//垂直分辨率public const int DESKTOPHORZRES = 118;//水平分辨率public const int BLTALIGNMENT = 119;}/// <summary>/// 屏幕信息/// </summary>public class GPUInfo{/// <summary>/// 当前分辨率/// </summary>public Size CurrentResolution { get; set; }/// <summary>/// 最大分辨率/// </summary>public Size MaxScreenResolution { get; set; }}#endregion#region 硬盘信息public partial class ComputerInfo{/// <summary>/// 磁盘信息/// </summary>public static List<DiskInfo> GetDiskInfo(){List<DiskInfo> diskInfos = new List<DiskInfo>();try{var moc = new ManagementClass("Win32_LogicalDisk").GetInstances();foreach (ManagementObject mo in moc){var diskInfo = new DiskInfo();var diskInfoType = diskInfo.GetType();var diskInfoFields = diskInfoType.GetProperties().ToList();foreach (var item in mo.Properties){if (diskInfoFields.Exists(f => f.Name == item.Name)){var p = diskInfoType.GetProperty(item.Name);p.SetValue(diskInfo, item.Value);}}diskInfos.Add(diskInfo);}//B转GBfor (int i = 0; i < diskInfos.Count; i++){diskInfos[i].Size = Math.Round((double)(diskInfos[i].Size / 1024.0 / 1024.0 / 1024.0), 1);diskInfos[i].FreeSpace = Math.Round((double)(diskInfos[i].FreeSpace / 1024.0 / 1024.0 / 1024.0), 1);}}catch (Exception ex){}return diskInfos;}}/// <summary>/// 磁盘信息/// </summary>public class DiskInfo{/// <summary>/// 磁盘ID 如:D:/// </summary>public string DeviceID { get; set; }/// <summary>/// 驱动器类型。3为本地固定磁盘,2为可移动磁盘/// </summary>public uint DriveType { get; set; }/// <summary>/// 磁盘名称。如:系统/// </summary>public string VolumeName { get; set; }/// <summary>/// 描述。如:本地固定磁盘/// </summary>public string Description { get; set; }/// <summary>/// 文件系统。如:NTFS/// </summary>public string FileSystem { get; set; }/// <summary>/// 磁盘容量(GB)/// </summary>public double Size { get; set; }/// <summary>/// 可用空间(GB)/// </summary>public double FreeSpace { get; set; }public override string ToString(){return $"{VolumeName}({DeviceID}), {FreeSpace}GB is available for {Size}GB in total, {FileSystem}, {Description}";}}#endregion

可以获取下面这些信息:

ComputerCheck Info:
System Info:Windows 10 Enterprise, Enterprise, X64, Microsoft Windows 10.0.18363 
CPU Info:Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz, 4 Core 4 Threads
RAM Info:12/15.8GB(75%)
GPU Info:1920*1080 / 1920*1080
Disk Info:系统(C:), 74.2GB is available for 238.1GB in total, NTFS, 本地固定磁盘
软件(D:), 151.9GB is available for 300GB in total, NTFS, 本地固定磁盘
办公(E:), 30.7GB is available for 300GB in total, NTFS, 本地固定磁盘
其它(F:), 256.3GB is available for 331.5GB in total, NTFS, 本地固定磁盘

参考文章:

WMI_04_常见的WMI类的属性_wmi scsilogicalunit_fantongl的博客-CSDN博客

C#获取计算机物理内存和可用内存大小封装类SystemInfo_c# 获得物理内存大小_CodingPioneer的博客-CSDN博客

https://www.cnblogs.com/pilgrim/p/15115925.html

win10各种版本英文名称是什么? - 编程之家

https://www.cnblogs.com/dongweian/p/14182576.html

C# 使用WMI获取所有服务的信息_c# wmi_FireFrame的博客-CSDN博客

WMI_02_常用WMI查询列表_fantongl的博客-CSDN博客

相关文章:

【C#】获取电脑CPU、内存、屏幕、磁盘等信息

通过WMI类来获取电脑各种信息&#xff0c;参考文章&#xff1a;WMI_04_常见的WMI类的属性_wmi scsilogicalunit_fantongl的博客-CSDN博客 自己整理了获取电脑CPU、内存、屏幕、磁盘等信息的代码 #region 系统信息/// <summary>/// 电脑信息/// </summary>public p…...

途乐证券-最准确的KDJ改良指标?

KDJ目标是技术剖析的一种重要目标之一&#xff0c;它是利用随机目标&#xff08;%R&#xff09;发展而来的&#xff0c;是一种反映商场超买和超卖状况的买卖目标。KDJ目标由快线&#xff08;K线&#xff09;、慢线&#xff08;D线&#xff09;和随机值&#xff08;J线&#xff…...

数据结构——线性表

文章目录 线性表的定义和基本操作顺序表线性表的链式表示 线性表的定义和基本操作 线性表是具有相同数据类型的(n≥0)个数据元素的有限序列&#xff0c;其中n为表长&#xff0c;当n0时线性表是一个空表。若用L命名线性表&#xff0c;则其中一般表示为&#xff1a;L(a1,a2,a3, …...

SpringBoot系列之基于Jersey实现文件上传API

前言 JAX-RS&#xff1a;JAX-RS是可以用可以用于实现RESTFul应用程序的JAVA API&#xff0c;给开发者提供了一系列的RESTFul注解Jersey&#xff1a;是基于JAX-RX API的实现框架&#xff0c;用于实现RESTful Web 服务的开源框架。 JAX-RX常用的注解&#xff1a; javax.ws.rs.Pa…...

【LangChain】Prompts之示例选择器

LangChain学习文档 【LangChain】向量存储(Vector stores)【LangChain】向量存储之FAISS【LangChain】Prompts之Prompt templates【LangChain】Prompts之自定义提示模板【LangChain】Prompts之示例选择器 概要 如果您有大量示例&#xff0c;您可能需要选择要包含在提示中的哪…...

Neo4j之CREATE基础

在 Neo4j 中&#xff0c;CREATE 语句用于创建节点、关系以及节点属性。 创建节点&#xff1a; CREATE (p:Person {name: John, age: 30});这个查询会创建一个具有 "Person" 标签的节点&#xff0c;节点属性包括 "name" 和 "age"。 创建带有关…...

Kali Hyper-V安装正常启动后 黑屏 只能进命令模式

问题: Hyper-V安装虚拟机Kali系统一切安装正常, 没有出现错误. 安装成功后重启,只能进入命令模式,tt1-tt6,进不去GUI桌面. 尝试: 一代二代虚拟硬盘都试过,同样问题,只能开进后进入命令模式,在命令模式下一切运行正常, 也修复过系统 GNOM等的,不管用. 以下为国外论坛给的建议,尝…...

【人工智能124种任务大集合】-集齐了自然语言处理(NLP),计算机视觉(CV),语音识别,多模态等任务

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能124种任务大集合&#xff0c;任务集合主要包括4大类&#xff1a;自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;、语音识别、多模态任务。 我这里整理了124种应用场景任…...

IntelliJ IDEA快捷键大全

文章目录 1、构建/编译2、文本编辑3、光标操作4、文本选择5、代码折叠6、辅助编码7、上下文导航8、查找操作9、符号导航10、代码分析11、运行和调试12、代码重构13、全局 CVS 操作14、差异查看器15、工具窗口 本文参考了 IntelliJ IDEA 的官网&#xff0c;列举了IntelliJ IDEA&…...

阿里云轻量应用服务器_2核4G4M_2核2G3M_性能测评

阿里云轻量应用服务器2核2G3M带宽108元一年&#xff0c;系统盘为50GB高效云盘&#xff1b;轻量服务器2核4G4M带宽&#xff0c;60GB高效云盘297.98元12个月。目前轻量应用服务器只有2核2G和2核4G有活动&#xff0c;阿里云百科分享阿里云轻量应用服务器入口&#xff1a; 目录 阿…...

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)

题目&#xff1a;提取全部5页发布日热度的值&#xff0c;计算所有值的加和 地址&#xff1a;https://match.yuanrenxue.cn/match/2 思路分析 本题我们会简单说一下两种不同的方式去处理&#xff0c;一种是不还原混淆代码直接从源代码硬扣生成逻辑&#xff0c;另一种则是还原…...

ubuntu网络管理

主机-ip&#xff0c;service—port 分别查看/etc/hosts&#xff0c;/etc/host.conf&#xff1b;/etc/services&#xff0c;/etc/resolv.conf&#xff1b; 内核更新——linux-image-generic 6.2.0-24.24 非常抱歉&#xff0c;我误解了你的问题。如果你想更新已安装的内核版本…...

您可能并不需要单页应用程序

前端框架的迅速崛起&#xff0c;如React、Angel、Vue.js、Elm等&#xff0c;使得单页面应用程序&#xff08;Single Page Application&#xff09;在网络上无处不在。对于许多开发人员来说&#xff0c;这些已经成为他们“默认”工具集的一部分。当他们开始一个新项目时&#xf…...

基于低代码和数字孪生技术的电力运维平台设计

电力能源服务商在为用能企业提供线上服务的时候&#xff0c;不可避免要面对用能企业的各种个性化需求。如果这些需求和想法都要靠平台厂家研发人员来实现&#xff0c;那在周期、成本、效果上都将是无法满足服务运营需要的&#xff0c;这也是目前很多线上能源云平台应用效果不理…...

【Github】SourceTree技巧汇总

sourceTree登录github账户 会跳转到浏览器端 按照Git Flow 初始化仓库分支 克隆远程仓库到本地 推送变更到远程仓库 合并分支 可以看到目前的本地分支&#xff08;main、iOS_JS&#xff09;和远程分支&#xff08;origin/main、origin/HEAD、origin/iOS_JS&#xff09;目前所处…...

人工智能轨道交通行业周刊-第55期(2023.8.7-8.13)

本期关键词&#xff1a;北京智慧交通规划、成都数智化规划、关门车、集装箱标志、大模型隐私、视觉大模型 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交…...

向量数据库 Milvus Cloud Partition Key:租户数量多,单个租户数据少的三种解决方案

三种解决方案 这个问题提出的时候,Milvus 的最新版本是 2.2.8,我们做个角色互换,在当时站在这个用户的角度,留在我们面前的选择有这么几个: 为每个租户创建一个 collection 为每个租户创建一个 partition 创建一个租户名称的标量字段 接下来,我们依次分析下这三种方案的可…...

文本三剑客之grep命令和awk命令 1.0 版本

grep awk 1.grep命令1.1 基本格式1.2 常用选项 2.awk命令2.1 awk工作原理2.2 awk命令格式2.3 awk常用内置变量 1.grep命令 1.1 基本格式 grep [选项]… 查找条件 目标文件1.2 常用选项 选项功能 -m [ x ]匹配x次 后停止,x为具体数字-v取反 -i忽略字符大小写 -n显示匹配的 …...

【软件测试】Linux环境Ant调用Jmeter脚本并且生成测试报告(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 准备工作 需要在…...

MySQL的YEAR函数

MySQL的YEAR函数用于提取日期或日期时间值的年份部分。 语法&#xff1a; YEAR(date)参数&#xff1a; date&#xff1a;要提取年份的日期或日期时间值。 示例&#xff1a; SELECT YEAR(2023-08-09); -- 返回 2023SELECT YEAR(2023-08-09 14:16:20); -- 返回 2023注意事项…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...