Dino_Rox 0 Denunciar post Postado Agosto 3, 2012 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
Dino_Rox 0 Denunciar post Postado Agosto 4, 2012 Resolvi. http://stackoverflow.com/questions/11802590/regkeyenumkeyex-dont-work-properly Compartilhar este post Link para o post Compartilhar em outros sites