C#获取已安装软件列表
最近项目需要判断目标电脑是否安装了对应环境,故需要获取系统上已安装的软件列表。查找一番,写下本篇文章备忘。
参考链接:
Registry 类
RegistryKey 类
RegistryView 枚举
Registry
提供表示 Windows 注册表中的根项的 RegistryKey 对象,并提供访问项/值对的 static 方法。
字段
| ClassesRoot | 定义文档的类型(或类)以及与那些类型关联的属性。 该字段读取 Windows 注册表基项 HKEY_CLASSES_ROOT。 |
| CurrentConfig | 包含有关非用户特定的硬件的配置信息。 该字段读取 Windows 注册表基项 HKEY_CURRENT_CONFIG。 |
| CurrentUser | 包含有关当前用户首选项的信息。 此字段读取 Windows 注册表基项 HKEY_CURRENT_USER。 |
| LocalMachine | 包含本地计算机的配置数据。 该字段读取 Windows 注册表基项 HKEY_LOCAL_MACHINE。 |
| PerformanceData | 包含软件组件的性能信息。 该字段读取 Windows 注册表基项 HKEY_PERFORMANCE_DATA。 |
| Users | 包含有关默认用户配置的信息。 该字段读取 Windows 注册表基项 HKEY_USERS。 |
记C# HttpClient Post 使用
树莓派使用Udisks2自动挂载U盘
参考链接:Udisks (简体中文) - ArchWiki (archlinux.org)
起因:项目中用到了树莓派,设置成不启动桌面,直接启动自己的app开机自启后发现U盘不自动挂载了。
提醒:由于linux改动频繁,也许你看到这篇文章的时候,本文方法已经不适用。祝好运!
本文对应的树莓派信息:
1 | pi@raspberrypi:~ $ cat /proc/version |
树莓派禁用ipv6
本文方法在’Linux raspberrypi 6.6.74+rpt-rpi-v7 #1 SMP Raspbian 1:6.6.74-1+rpt1 (2025-01-27) armv7l GNU/Linux’版本的树莓派3b上有效,也许你看到这篇文章的时候已经不适用了,请自行甄别。GoodLuck!
树莓派使用CUPS搭建局域网打印机
本文记录在树莓派3b上使用cups连接并共享hp打印机的过程。
一.制作系统sd卡
1.下载并安装树莓派镜像烧录器 https://downloads.raspberrypi.org/imager/imager_latest.exe
2.将sd卡插入电脑,打开树莓派镜像烧录器。
JS数字格式字符串增1处理(支持左侧补零)
有些时候需生成的标签自增,
比如”rs-001,rs-002…”,或”00-001ace, 00-002ace…”,又或者”a-01-001,a-01-002”这种。包含字母,且结尾部分字符串需要递增。故编写了以下代码:
STM32F103C8T6驱动MAX31865获取PT1000温度数据
.Net使用AssemblyLoadContext加载托管程序集并调用方法
AssemblyLoadContext
AssemblyLoadContext 类是在 .NET Core 中引入的,在 .NET Framework 中不可用。每个 .NET 5+ 和 .NET Core 应用程序均隐式使用 AssemblyLoadContext。 它是运行时的提供程序,用于定位和加载依赖项。 只要加载了依赖项,就会调用 AssemblyLoadContext 实例来定位该依赖项。
- AssemblyLoadContext 提供定位、加载和缓存托管程序集和其他依赖项的服务。
- 为了支持动态代码加载和卸载,它创建了一个独立上下文,用于在其自己的 AssemblyLoadContext 实例中加载代码及其依赖项。
C# 引用C/C++ DLL之常见类型转换
C#引用C/C++ DLL系列再水最后一篇……
整体思路:需要考虑这个数据在c语言内存中是如何存储的。当变量在C/C++ dll中所占的内存长度等于C#变量所占内存长度,基本可以直接转换。复杂的类型,如数组、结构体,可以通过Intptr进行接收,再获取对应地址的内存然后转换。