#include #include #include #include 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; }