Título: mostrar los valores de una key del registro de windows Publicado por: andres_89a en 1 Octubre 2012, 08:06 am Saludos a todos los programadores de este foro, quisiera hacerles una consulta sobre como listar o mostrar los valores o nombres de una key del registro de windows, tengo conocimientos en c++, pero ahora que quiero profundizar en lo que es el manejo del sistema, me han aparecido nombres y libreria que nunca habia esuchado, estuve googleando, para ver ejemplos sobre mi problema y encontre varios , pero una es la que se acerca mas y fue hecho en este foro, aca se los dejo:
#include<stdio.h> #include<windows.h> //Uso VC++ el proyecto debe usar multibyte strings asi que en Propiedades del proyecto->General->Juego de caracteres //Utilizar juego de caracteres multibyte int leerRegistro(char *clave,char *valor) { unsigned char infoValor [1024]; unsigned char infocadena [1024]; HKEY hKey; LONG lStatus; DWORD dwType=REG_SZ; DWORD dwSize=1023; int i=0; lStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE,clave,0,KEY_READ,&hKey); if (lStatus == ERROR_SUCCESS) { lStatus = RegQueryValueEx(hKey,valor, 0,&dwType, (LPBYTE)&infoValor, &dwSize); if (lStatus == ERROR_SUCCESS) { for(i=0;infoValor!=0 && infoValor!=204;i++) { infocadena=(char)infoValor; } infocadena ='\0'; printf("Info del valor: %s",infocadena); RegCloseKey(hKey); return 1; } } RegCloseKey(hKey); return 0; } int main() { if(!leerRegistro("SOFTWARE\\Microsoft\\Internet Explorer\\Main","Start page"))printf("Falla al leer el registro\n"); getchar(); return EXIT_SUCCESS; } mi problema es que quiero mostrar los valores que esten en esa key, estuve intentandolo con un while, pero no me sale el parametro para que lo lea y lo guarde, espero su ayuda , saludos a todos. Título: Re: mostrar los valores de una key del registro de windows Publicado por: Eternal Idol en 1 Octubre 2012, 14:09 pm Si lo que queres es saber el nombre de los valores usa: RegEnumValue (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724865%28v=vs.85%29.aspx).
Título: Re: mostrar los valores de una key del registro de windows Publicado por: andres_89a en 1 Octubre 2012, 18:00 pm bueno, he visto tu funcion pero aun hay algunos parametros que no entiendo , he probado algunos codigos pero me da errores , creo que es por el compilador, estoy trabajando con dev-c++, encontre uno en visual c++ , que es exactamente lo que quiero pero solo funciona en visual c++(es por el net.framework),aca dejo el resultado que quiero que me muestre pero con la api de windows , no con el .net de visual c++:
Citar // Leer Registros.cpp : main project file. #include "stdafx.h" #include <windows.h> // registry_read.cpp // compile with: /clr using namespace System; using namespace Microsoft::Win32; int main( ) { array<String^>^ key = Registry::CurrentUser->GetSubKeyNames( ); RegistryKey^ rk = nullptr; rk = Registry::CurrentUser->OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); if (rk==nullptr) { Console::WriteLine("Registry key not found - aborting"); return -1; } Console::WriteLine("Nombres de la clave del registro \"Software\\Microsoft\\Windows\\CurrentVersion\\Run\""); array<String^>^ name = rk->GetValueNames( ); for (int i=0; i<name->Length; i++) { String^ value = rk->GetValue(name)->ToString(); Console::WriteLine(" {0}", name); } system("pause >nul"); return 0; } este codigo si me muestra exactamente lo que quiero , pero quiero adaptarlo en dev-c++, espero me ayuden.. =) Título: Re: mostrar los valores de una key del registro de windows Publicado por: Eternal Idol en 1 Octubre 2012, 18:05 pm Ese codigo no es C++, no lo traigas a este subforo por favor. Ahi mismo en el enlace que te deje tenes un ejemplo sobre como usar la funcion RegEnumValue de la API de Windows.
|