`
tcspecial
  • 浏览: 906530 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

windows注册表读取

阅读更多
/**
 *@brief 原生windows api方式读取,处理起来比较麻烦
 *调用:RegQuery1(0x80000002,"SYSTEM\\CurrentControlSet\\services\\sysvmsq\\Parameters","msg_max");
 */
bool RegQuery1(int pKey,const char *pSubKey,const char *szKey)
{
	HKEY hKey;

	//  打开注册表
	LONG lResult=RegOpenKeyEx((HKEY)pKey,pSubKey,0,KEY_READ,&hKey);
	if(lResult!=ERROR_SUCCESS)
		return false;
	
	// szValue为接收数据缓冲区,如果是非字符串类型,就要对该缓冲区数据进行处理
	char szValue[512];  
	DWORD pType;
	DWORD pSize;
	
	// 查询注册表
	LONG ret=RegQueryValueEx(hKey,szKey,0,&pType,(LPBYTE)szValue,&pSize);
	RegCloseKey(hKey);

	// 值类型判断解析
	if(pType==REG_DWORD)  // 整数
	{
	    // 方法一: DWORD占四字节大小,只需取szValue4字节数据
		// 通过查看0x0012fc44内存发现,即 00 00 04 00
		// Intel系列CPU一般以小端形式存放数据,此时值应为0x00040000(262144) 
		DWORD dValue=0;
		dValue|=szValue[3]<<24;
		dValue|=szValue[2]<<16;
		dValue|=szValue[1]<<8;
		dValue|=szValue[0];
		
		// 方法二: 直接内存拷贝即可
		DWORD ddValue=0;
		memcpy((void*)&ddValue,(void*)szValue,sizeof(DWORD));
	}

	return true;
}


/**
 *@brief QT方式读取,QSettings提供了简洁的访问接口
 */
QString RegQuery2()
{
	QString path="HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\sysvmsq";
	QSettings settings(path,QSettings::NativeFormat);

	// 获取组Parameters下键为msg_max的值
	settings.beginGroup("Parameters");
	QString pVal=settings.value("msg_max").toString();
	settings.endGroup();
	
	return pVal;
}

 

 运行截图:

 

 

 

  • 大小: 48.9 KB
分享到:
评论

相关推荐

    JAVA访问WINDOWS注册表

    本文将详细介绍如何使用Java来访问和操作Windows注册表。 首先,Java本身并不直接提供访问操作系统注册表的功能。为了实现这一目标,我们需要借助第三方库。这里提到的“registry-3.1.3.zip”可能就是一个这样的库...

    Java直接访问Windows注册表

    Jave的Preferences只在Software\JavaSoft\Prefs操作,反射WindowsPreferences能够操作Windows注册表的其他节点. 方法: 1.public static void put(int root,String path,String key,String val) 2.public static ...

    js调用本地exe(根据注册表读取内容)

    接下来,关于“根据注册表读取内容”,在Node.js环境下,可以使用第三方库如`windows-regedit`来读取Windows注册表: ```javascript const regedit = require('windows-regedit'); regedit.readKey('HKEY_LOCAL_...

    WINDOWS7注册表优化

    3. 缩小注册表大小:通过压缩注册表,可以减少其占用的硬盘空间,提高读取速度。 四、加大IE线程应用程序加速 Internet Explorer(IE)浏览器的性能与注册表设置密切相关。加大IE线程数可以同时处理更多页面,从而...

    C++解析windows注册表hive文件

    本篇将探讨如何使用C++编程语言直接解析Windows注册表的Hive文件,而不依赖于系统提供的注册表API。 首先,我们需要理解Hive文件的结构。注册表Hive文件是一种二进制文件,其内部结构比较复杂,包括了键(Keys)、...

    VB6.0注册表读取查看编辑程序.rar

    本资源“VB6.0注册表读取查看编辑程序.rar”提供了一个利用VB6.0实现的注册表操作工具,对于学习和理解VB与Windows注册表的交互具有很高的参考价值。 注册表是Windows操作系统中的一个重要组件,存储着系统的配置...

    JAVA操作windows注册表

    首先,由于Java本身并不直接支持对Windows注册表的访问,我们需要借助第三方库,如`JRegistryKey`,这是一个开源的Java库,允许开发者通过Java代码读取和修改Windows注册表。要使用这个库,你需要将其导入到你的项目...

    开机系统提示注册表读取错误怎么办.docx

    在 Windows 操作系统中,注册表读取错误是一种常见的故障,尤其是在系统长时间运行且没有进行定期维护的情况下。这种错误的出现可能是由于系统中的注册表(.reg)和动态链接文件(.dll)大量积累的结果。这些文件在系统...

    windows注册表操作实例

    本教程将通过实例讲解如何使用C++进行Windows注册表的增删改查操作,这对于系统级编程和应用开发是必不可少的技能。 首先,我们需要了解注册表的基本结构。Windows注册表主要分为五大根键:HKEY_CLASSES_ROOT、HKEY...

    远程注册表读取,与多线程池的应用

    本话题主要探讨了两个关键概念:远程注册表读取和多线程池的应用。这两个概念都是提高程序性能和效率的重要工具。 首先,让我们深入了解远程注册表读取。注册表是Windows操作系统中的一个重要组件,它存储了系统和...

    zhucebiao.zip_注册表读取

    在IT行业中,注册表是...综上所述,"zhucebiao.zip_注册表读取"项目提供了一个C#实现的示例,帮助开发者学习和理解如何通过编程方式读取Windows注册表,这对于开发需要获取系统配置或应用特定信息的软件至关重要。

    Windows 注册表管理器

    **Windows注册表管理器** Windows注册表管理器是操作系统中用于存储系统和应用程序配置信息的重要工具。它是一个大型数据库,包含计算机硬件、软件、用户设置等各种配置数据。在Windows环境中,注册表管理器...

    JAVA对WINDOWS注册表进行增删查

    ### JAVA对WINDOWS注册表进行增删查 #### 概述 在Windows操作系统中,注册表(Registry)扮演着核心配置数据库的角色,存储了系统和应用程序的设置与选项。通过使用Java编程语言,开发者可以实现对注册表的增、删...

    Windows 7注册表优化集

    当系统运行时,会频繁地读取和写入注册表,因此,注册表的大小和健康状况直接影响到系统的性能。 在Windows 7中,优化注册表通常包括以下几个方面: 1. **清理无用的注册表项**:随着时间的推移,卸载软件、系统...

    Java操作windows注册表

    ### Java操作Windows注册表:深入理解与实践 在IT领域,特别是软件开发中,了解如何使用Java语言操作Windows注册表是一项关键技能。Windows注册表是Windows操作系统的核心组件之一,用于存储系统和应用程序设置的...

    java 注册表读取与修改(registry.jar)

    Java作为一个跨平台的编程语言,通常不直接支持操作系统级别的功能,比如读取和修改Windows注册表。然而,通过一些特定的库和工具,Java开发者可以实现这样的功能。在这个场景中,我们关注的是"registry.jar",它是...

    注册表文件读取C++类及示例程序

    总的来说,这个C++项目提供了一个实用工具,能够读取Windows注册表文件,这对于需要处理系统配置或需要在没有运行时访问注册表权限的环境中工作的开发者来说,是一个非常有价值的资源。通过理解和学习这个项目,我们...

    C# 通过注册表读取系统中安装的应用程序

    总结来说,C#通过注册表读取系统中安装的应用程序是一种常见的做法,主要涉及对`RegistryKey`对象的使用和访问特定的注册表路径。通过这种方式,开发者可以方便地获取到应用程序的元数据,以满足各种需求,如生成...

    注册表读取写入.rar

    在Delphi中,我们主要使用Registry组件来与Windows注册表交互。 注册表读取操作通常涉及以下步骤: 1. **创建Registry对象**:首先,在代码中创建一个TRegistry对象,这将为我们提供一个接口来访问注册表。 ```...

    WINCE 上注册表读取写入工具

    本文将详细介绍如何在WINCE上使用注册表读取写入工具——Regedit.exe,来操作和管理注册表。 Regedit.exe是WINCE中的一个实用程序,类似于Windows桌面系统中的regedit,用于查看、修改和管理注册表键值。这个工具...

Global site tag (gtag.js) - Google Analytics