枚举注册表键名与键值的一个函数:
// QueryKey - Enumerates the subkeys of key, and the associated
// values, then copies the information about the keys and values
// into a pair of edit controls and list boxes.
// hDlg - Dialog box that contains the edit controls and list boxes.
// hKey - Key whose subkeys and values are to be enumerated.
void QueryKey(HWND hDlg, HANDLE hKey)
{
CHAR achKey[MAX_PATH];
CHAR achClass[MAX_PATH] = ""; // buffer for class name
DWORD cchClassName = MAX_PATH; // size of class string
DWORD cSubKeys; // number of subkeys
DWORD cbMaxSubKey; // longest subkey size
DWORD cchMaxClass; // longest class string
DWORD cValues; // number of values for key
DWORD cchMaxValue; // longest value name
DWORD cbMaxValueData; // longest value data
DWORD cbSecurityDescriptor; // size of security descriptor
FILETIME ftLastWriteTime; // last write time
DWORD i, j;
DWORD retCode, retValue;
CHAR achValue[MAX_VALUE_NAME];
DWORD cchValue = MAX_VALUE_NAME;
CHAR achBuff[80];
// Get the class name and the value count.
RegQueryInfoKey(hKey, // key handle
achClass, // buffer for class name
&cchClassName, // size of class string
NULL, // reserved
&cSubKeys, // number of subkeys
&cbMaxSubKey, // longest subkey size
&cchMaxClass, // longest class string
&cValues, // number of values for this key
&cchMaxValue, // longest value name
&cbMaxValueData, // longest value data
&cbSecurityDescriptor, // security descriptor
&ftLastWriteTime); // last write time
SetDlgItemText(hDlg, IDE_CLASS, achClass);
SetDlgItemInt(hDlg, IDE_CVALUES, cValues, FALSE);
SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),
LB_ADDSTRING, 0, (LONG) "..");
// Enumerate the child keys, until RegEnumKeyEx fails. Then
// get the name of each child key and copy it into the list box.
SetCursor(LoadCursor(NULL, IDC_WAIT));
for (i = 0, retCode = ERROR_SUCCESS;
retCode == ERROR_SUCCESS; i++)
{
retCode = RegEnumKeyEx(hKey,
i,
achKey,
MAX_PATH,
NULL,
NULL,
NULL,
&ftLastWriteTime);
if (retCode == (DWORD)ERROR_SUCCESS)
{
SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),
LB_ADDSTRING, 0, (LONG) achKey);
}
}
SetCursor(LoadCursor (NULL, IDC_ARROW));
// Enumerate the key values.
SetCursor(LoadCursor(NULL, IDC_WAIT));
if (cValues)
{
for (j = 0, retValue = ERROR_SUCCESS;
j < cValues; j++)
{
cchValue = MAX_VALUE_NAME;
achValue[0] = '/0';
retValue = RegEnumValue(hKey, j, achValue,
&cchValue,
NULL,
NULL, // &dwType,
NULL, // &bData,
NULL); // &bcData
if (retValue == (DWORD) ERROR_SUCCESS )
{
achBuff[0] = '/0';
// Add each value to a list box.
if (!lstrlen(achValue))
lstrcpy(achValue, "<NO NAME>");
wsprintf(achBuff, "%d) %s ", j, achValue);
SendMessage(GetDlgItem(hDlg,IDL_LISTBOX2),
LB_ADDSTRING, 0, (LONG) achBuff);
}
}
SetCursor(LoadCursor(NULL, IDC_ARROW));
}
相关推荐
《Sysinternals实战指南》16.3 RegDelNull 实战:清理包含 Null 字符的注册表键值,排查系统“脏数据”
本文介绍了Sysinternals工具RegDelNull的实战应用,重点讲解了如何清理包含NULL字符的注册表键值。这类"脏数据"通常表现为可见但无法删除的注册表项,可能由恶意软件、安装异常或程序错误导致。文章详细说明了工具使用方法,包括基本参数、典型应用场景(如卸载残留清理和恶意软件处理)以及安全操作建议(如备份和范围控制)。最后总结了RegDelNull的核心适用场景:当遇到"看得见却删不掉"的可疑注册表键时,应考虑使用该工具进行针对性清理。
易语言取数值注册项写注册项删注册项
本课视频教程讲解了易语言取数值注册项,取字节集注册项,注册项是否存在,写注册项,删除注册项,等命令。 视频链接: 511遇见易语言教程 教程源码: .版本 2 .支持库 spec .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击, , , 取文本注册项 .局部变量 a, 文本型 ' 运行 (“regedit”, 假, ) a = 取文本注册项 (3, “AlbumArt\ThumbnailStorePath”, “取文本失败”) 调试输出 (a) ' C:\Progr...
易语言键值表
易语言键盘所有键值,便于新手编译
C/C++枚举注册表某项下的所有键值【代码示例】
使用Windows API 函数中的RegOpenKeyEx()函数和RegEnumKeyEx()函数来实现对注册表某项下的所有子项进行枚举。 1、RegOpenKeyEx 函数: 原形:LONG RegOpenKeyEx( HKEY hKey, // 要打开主键名 LPCTSTR lpSubKey, // 需要打
易语言枚举注册表项与键值-易语言
易语言枚举注册表项与键值
易语言源码易语言枚举注册表项与键值.rar
易语言源码易语言枚举注册表项与键值.rar
咱们继续学Java——高级篇 第二百五十三篇:之Java进阶之本地方法:访问Windows注册表的代码深度解析
在Java学习的征程中,我们不断深入代码底层,每一次对关键代码的深度解析都是提升编程能力的关键。我写这篇博客的目的,就是希望与大家一同深入剖析Java本地方法中访问Windows注册表的代码实现细节,助力大家在Java与其他语言交互编程领域掌握更核心的技能。今天,我们将详细解读`Win32RegKey`类及其相关类中本地方法的代码逻辑,包括获取注册表键值、设置键值以及枚举键名字的操作,相信这会让你在处理Java与系统底层交互时更加游刃有余。
易语言源码WIN32API功能150个(屏幕篇).rar
易语言源码WIN32API功能150个(屏幕篇).rar 易语言源码WIN32API功能150个(屏幕篇).rar 易语言源码WIN32API功能150个(屏幕篇).rar 易语言源码WIN32API功能150个(屏幕篇).rar 易语言源码WIN32API功能150个(屏幕篇).rar 易语言源码WIN32API功能150个(屏幕篇).rar
如何枚举系统COM串口
CRegKey RegKey; int nCount = 0; //系统COM端口的注册表信息就在该目录下。 if(RegKey.Open(HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm") == ERROR_SUCCESS) { while(true) { ...
易语言源码枚举注册表.rar
易语言源码
易语言枚举注册表
枚举注册表系统结构:取文本,取数值,取字节集,默认,RegEnumKeyEx,RegEnumKey,RegCreateKey,RegOpenKey,RegOpenKeyEx,RegCloseKey,RegEnumValue, ======窗口程序集1 || ||------_组合框1_列表项被选择 || ||------__启动窗
注册表遍历
<br />程序如下:<br /><br />// 11.cpp : Defines the entry point for the console application.<br />//<br />#include "stdafx.h"<br />#include <stdio.h> <br />#include <time.h> <br />#include <windows.h> <br /> <br />HKEY hKey[] = {HKEY_CLASSES_ROOT, <br />
macOS Monterey官方镜像高速下载指南(附迅雷链接+兼容性清单)
本文提供macOS Monterey官方镜像的高速下载指南,重点介绍利用迅雷等工具加速下载官方安装包的有效方法。同时,详细列出了系统兼容性清单,帮助用户在下载前确认设备支持,并分享了从下载、验证到安全安装的完整流程与常见问题解决方案。
利用 Qt 4.1.0 读取注册表获得串口信息
利用 Qt 4.1.0 读取注册表获得串口信息是本文要介绍的内容,内容不多,用代码解决实际问题,先来看内容!前段时间做串口开发,想做自动扫描串口设备功能 遇到问题现在终于解决程序写得不是很好,功能实现了。按照此方法应该能够扫描到其他硬件。 我遇到的问题: 使用QSettings时 对于注册表中串口信息中的 \Device\Serial0 这种key值 无法找到其value 是 \
告别Colmap!在ROS2 Humble上,用Fast-LIVO2直接为3D Gaussian Splatting准备数据全流程
本文详细介绍了在ROS2 Humble环境下,使用Fast-LIVO2为3D Gaussian Splatting(3DGS)准备数据的全流程。通过优化Fast-LIVO2配置、实时数据同步机制和3DGS训练参数,显著提升了三维重建效率和质量,相比传统Colmap流程节省95%以上的预处理时间。适用于Ubuntu22.04系统,适合机器人及自动驾驶领域的三维重建应用。
vtk相机_分别用 VTK 体绘制和面绘制来实现医学图像三维重建;
序言,VTK介绍:VTK 全称为 The Visualization Toolkit (可视化工具),是一个开源、跨平台、自由获取、支持并行计算的图形应用函数;拥有3D 渲染的最新工具、提供3D交互模式以及2D绘图等。VTK 包含一个C++类库,目前提供了众多语言接口,例如 Java、Python、TCL;在三维函数库OpenGL 的基础上采用面向对象设计方法发展起来图形学基本概念和数据...
MFC 操作注册表
向注册表中添加值: 先创建键,再添加。 void CDlgLogOn::InitRegInfo() { CRegKey key1; key1.Create(HKEY_CURRENT_USER, "software\\Test\\UserInfo"); key1.Open(HKEY_CURRENT_USER, "software\\Test\\UserInfo"); key1.Set
<Verilog实现除法器> Verilog实现牛顿-拉夫逊(Newton-Raphson)除法器
阿斯顿阿斯顿啊啊是打发士大夫
vb.net注册表基本操作
vb.net提供了microsoft.win32类,下面有三个子类,全是针对注册表的,Microsoft.Win32.RegistryKey、Microsoft.Win32.Registry、Microsoft.Win32.RegistryHive Microsoft.Win32.Registry提供了访问各个注册表中根的值 Microsoft.Win32.Registry.Current
避坑指南:Livox Mid-360双雷达SLAM配置中,那些官方文档没说的细节(IP设置、话题分离与时间同步)
本文详细解析了Livox Mid-360双雷达SLAM配置中的关键优化点,包括IP设置、话题分离与时间同步等官方文档未提及的细节。通过实战案例和代码示例,帮助开发者解决点云错位、IMU数据混乱等问题,提升SLAM系统的稳定性和精度。特别针对网络架构设计、驱动修改和时间同步机制提供了专业指导。
[cshell]个性化配置你的cshrc/tcshrc
本文介绍了csh/tcsh shell的配置优化方法,主要包括:1. 配置文件管理(全局和个人配置);2. 按键绑定设置(解决远程登录按键问题);3. 提示符个性化(包含颜色配置方案);4. 环境变量设置(如LSCOLORS、CLICOLOR等);5. 安全防护措施(防误删、防覆盖等);6. 实用alias命令集(简化操作、提高效率)。文章提供了详细的配置示例,并建议通过man tcsh获取更多帮助信息。这些配置能显著提升shell使用体验和工作效率。
2万+



被折叠的 条评论
为什么被折叠?



