#include <windows.h>
#include <winreg.h>
#include <stdio.h>
#include <myheader.h>
extern int enumvalues(HKEY subkey);
unsigned long int subkeys=0;
unsigned long int values=0;
unsigned long int buffersize=200;
unsigned long int zaehler=0;
unsigned long int index=0;
char string [30] [200];
char path [30] [200];
int enumsubkeys(HKEY key);
int main ()
{
HKEY hkey;
HKEY newkey[5];
HKEY rootkey[4];
int parameter;
int i=0;
int k=0;
int nummer=0;
rootkey[0]=HKEY_USERS;
rootkey[1]=HKEY_CURRENT_USER;
rootkey[2]=HKEY_LOCAL_MACHINE;
rootkey[3]=HKEY_USERS;
rootkey[4]=HKEY_PERFORMANCE_DATA;
printf("Bitte wählen sie einen root-key aus\n");
scanf("%i", ¶meter);
hkey=rootkey[parameter];
do
{
RegQueryInfoKey(hkey,NULL,NULL,NULL,&subkeys, NULL,
NULL,&values,NULL,NULL,NULL,NULL);
if(subkeys!=0)
{
enumsubkeys(hkey);
}
else
{
if (values!=0)
{
enumvalues(hkey);
}
}
scanf("%i", &nummer);
RegOpenKeyEx(hkey,string[nummer],0,KEY_ALL_ACCESS,&newkey[k]);
memset(string,0,sizeof(string));
hkey=newkey[k];
k=k+1;
} while(1);
return 0;
}
int enumsubkeys(HKEY key)
{
for (zaehler=0,index=0;zaehler<=(subkeys);index++,zaehler++)
{
RegEnumKey(key,index,string[zaehler],buffersize);
printf("%s\n",string[zaehler]);
Sleep(90);
}
return 0;
}