• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: C/C++
  • 标签: 注册表  C语言  

资源简介

指定注册表中的项,将该项下的所有子项以及键值导出,写成txt文本文件。

资源截图

代码片段和文件信息



#include “TCHAR.H“
#include “fstream.H“
#include “string.H“
#include 
#include 
#include 
#include 
#include 


#define SLEEP_TIME 377
#define MAX_KEY_LENGTH 5000
#define MAX_PATH_n 5000

FILE * fp;

void RegSearch(HKEY hKey TCHAR rootKey[] char * pathchar *name)
{

// FILE*fp;
HKEY hKeyR;
    DWORD numSubKey=0;
    DWORD ij;
    DWORD sizeSubKeylpType;
    TCHAR subKey[MAX_PATH];
DWORD dwType=0;
DWORD dwSize=0numkey=0vnamelenvdatalen;
unsigned char pByteSubKey[MAX_PATH] =““;
char lpValueName[10000];//[MAX_PATH] =““;
unsigned char lpData[10000];//[MAX_KEY_LENGTH] =““;
char hc[3]={0x0d0x0a0x00};
char newpath[MAX_KEY_LENGTH]=““;
char datatemp[32]=““;

ofstream ofile(nameios::app);
ofile<
    DWORD ret=RegOpenKeyEx(hKey
rootKey
0
KEY_READ |KEY_ALL_ACCESS|KEY_QUERY_VALUE////
&hKeyR);


if(ret != ERROR_SUCCESS)       // 若打开失败退出递归
{

ofile<<“打开失败!程序终止“< return ;
}


   {
numSubKey=0;
numkey=0;
        RegQueryInfoKey(hKeyR
NULL
NULL
NULL
&numSubKey
NULL
NULL
&numkey
NULL//&vnamelen
NULL//&vdatalen 
NULL
NULL);

ofile<<“共有“< ofile.close();

if (numkey)
{

/************************************************************************/
/*                       在此列举所有项值                               */
/************************************************************************/


for (i=0; i {
ofstream ofile(nameios::app);

vdatalen=MAX_PATH_n;
vnamelen=MAX_PATH_n;//执行RegEnumValue前,必须有这2个操作!!

ret=RegEnumValue(
hKeyR              // handle to key to query
i          // index of value to query
lpValueName     // address of buffer for value string
&vnamelen  // address for size of value buffer
NULL     // reserved
&lpType // address of buffer for type code
lpData          // address of buffer for value data
&vdatalen        // address for size of data buffer
);
//printf(“fh=%d:len=%d:typL:%d::%s:“retvdatalenlpTypelpValueName);

ofile< switch(lpType)
{
case REG_NONE:
ofile<<“REG_NONE“;
break;      
case REG_SZ: ofile<<“REG_SZ“;       break;        
case REG_EXPAND_SZ:  ofile<<“R

评论

共有 条评论