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();
    }
    



  • 相关阅读:
    笔记44 Hibernate快速入门(一)
    tomcat 启用https协议
    笔记43 Spring Security简介
    笔记43 Spring Web Flow——订购披萨应用详解
    笔记42 Spring Web Flow——Demo(2)
    笔记41 Spring Web Flow——Demo
    Perfect Squares
    Factorial Trailing Zeroes
    Excel Sheet Column Title
    Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/ke-yi-/p/10175854.html
Copyright © 2011-2022 走看看