Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dino_Rox

[Resolvido] Erro na Função RegEnumKeyEx

Recommended Posts

Bem galera, estou tentando fazer uma função que imprima todas as sub-chaves de uma determinada chave do registro do Windows.

 

O que acontece é que a saída não está funcionando do jeito que eu esperava. Os nomes das sub-chaves estão saindo cortados, como se não houvesse mais espaço no buffer - eu imagino - e outros estão saindo duplicados.

 

Me guiei pela documentação da Microsoft, no entanto não obtive sucesso...

 

O código é o seguinte:

 

#include<stdio.h>
#include<windows.h>

void print_list(HKEY hkey, char* path){

char dwValue[255];
DWORD  dwSize = 0;
DWORD n; // numero de sub-chaves
HKEY tmp;
int i;

if(RegOpenKeyEx(hkey, path, 0, KEY_READ, &tmp) == ERROR_SUCCESS){

	DWORD  dwSize = sizeof(dwValue);

	RegQueryInfoKey(tmp,NULL,NULL,NULL,&n,NULL,NULL,NULL,NULL,NULL,NULL,NULL);		

	for(i=0; i< n; i++){
		RegEnumKeyEx(tmp,i,dwValue,&dwSize,NULL,NULL,NULL,NULL);
		printf("%s\n", dwValue);
	}

	RegCloseKey(tmp);
}
}

int main(){
print_list(HKEY_LOCAL_MACHINE, "SOFTWARE");
return 0;
}

 

OBS.: sei que essa é uma questão um pouco restrita a um SO, se alguém conhecer um local mais adequado para eu esclarecer minha dúvida, por favor, me diga.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.