Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Carregando comentários...