zoukankan      html  css  js  c++  java
  • RegOpenKeyEx函数

    RegOpenKeyEx函数打开指定的注册表项。

    LONG RegOpenKeyEx(
      HKEY hKey,         // handle to open key
      LPCTSTR lpSubKey,  // subkey name
      DWORD ulOptions,   // reserved
      REGSAM samDesired, // security access mask
      PHKEY phkResult    // handle to open key
    );

    参数

    hkey:当前打开的密钥或以下预定义密钥之一的句柄

    HKEY_CLASSES_ROOT
    HKEY_CURRENT_CONFIG
    HKEY_CURRENT_USER
    HKEY_LOCAL_MACHINE
    HKEY_USERS
    Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
    Windows 95/98/Me: HKEY_DYN_DATA

    lpSubKey:指向一个空终止字符串的指针,该字符串包含要打开的子键的名称。如果该参数为NULL或指向空字符串的指针,则函数将为由hKey参数标识的键打开一个新句柄。在这种情况下,函数将不会关闭先前打开的句柄。

    ulOptions:保留;必须是零。

    samDesired:一个访问掩码,它指定对密钥的期望访问权限。这个参数可以是以下值的组合。KEY_CREATE_LINK、KEY_CREATE_SUB_KEY、KEY_ENUMERATE_SUB_KEYS、KEY_EXECUTE、KEY_NOTIFY、KEY_QUERY_VALUE、KEY_SET_VALUE、KEY_ALL_ACCESS、KEY_READ、KEY_WOW64_64KEY、KEY_WOW64_32KEY、KEY_WRITE。

    phkResult:指向变量的指针,该变量接收打开的键的句柄。当您不再需要返回的句柄时,请调用RegCloseKey函数来关闭它。

    返回值

    如果函数成功,返回值为ERROR_SUCCESS。如果函数失败,返回值是Winerror.h中定义的非零错误代码。您可以使用FormatMessage函数和FORMAT_MESSAGE_FROM_SYSTEM标志来获得错误的通用描述。

    示例代码:

    #include<stdio.h>
    #include<conio.h>
    #include<windows.h>
    void main(void)
    {
    	long lRet;
    	HKEY hKey;
    	TCHAR tchData[64];
    	DWORD dwSize;
    	lRet=RegOpenKeyEx(
    	HKEY_LOCAL_MACHINE,         // handle to open key
    	"Hardware\Description\System\CentralProcessor\0",  // subkey name
    	0,   // reserved
    	KEY_QUERY_VALUE, // security access mask
    	&hKey    // handle to open key
    	);
    	if(lRet==ERROR_SUCCESS)
    	{
    		dwSize=sizeof(tchData);
    		lRet=RegQueryValueEx(
    		hKey,            // handle to key
    		"ProcessorNameString",  // value name
    		NULL,   // reserved
    		NULL,       // type buffer
    		(LPBYTE)tchData,        // data buffer
    		&dwSize      // size of data buffer
    		);
    		if(lRet==ERROR_SUCCESS)
    		{
    			printf("
     CPU INFO:");
    			printf("%s
    ",tchData);
    		}
    		//以下是失败的内容
    		else
    		{
    			printf("
    CPU INFO:");
    			printf("UNKNOWN
    ");
    		}
    	}
    	//以下是打开失败
    	else
    	{
    		printf("
     CPU INFO:");
    		printf("UNKNOWN
    ");
    	}
    	RegCloseKey(hKey);
    	getch();
    }
    



  • 相关阅读:
    Spring AOP概念及作用
    Spring IOC 概念及作用
    Spring基本介绍
    Mybatis注解开发
    Mybatis缓存及延迟加载策略
    认识各种内存地址
    认识/proc/[pid]/
    进程查看命令ps和top
    认识进程
    认识多处理器架构
  • 原文地址:https://www.cnblogs.com/ke-yi-/p/10175854.html
Copyright © 2011-2022 走看看