| 
	
		|  Autor | Tema: mostrar los valores de una key del registro de windows  (Leído 3,607 veces) |  
	| 
			| 
					
						| andres_89a 
								
								 Desconectado 
								Mensajes: 2
								
								
								
								
								
								   | 
 
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.
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
Si lo que queres es saber el nombre de los valores usa: RegEnumValue .
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.Juan Domingo Perón
 |  |  |  | 
			| 
					
						| andres_89a 
								
								 Desconectado 
								Mensajes: 2
								
								
								
								
								
								   | 
 
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++: // 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.. =) |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Eternal Idol 
								Kernel coder ajeno al tiempo 
								Moderador
								      Desconectado 
								Mensajes: 5.970
								
								 
								Israel nunca torturó niños, ni lo volverá a hacer.
								
								
								
								
								
								     | 
 
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. |  
						| 
								|  |  
								|  |  En línea | 
 
 La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.Juan Domingo Perón
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | Valores del registro Programación Visual Basic
 | Kizar | 1 | 3,427 |  27 Octubre 2005, 20:28 pm por Kizar
 |  
						|   |   | Mostrar los valores más altos Bases de Datos
 | Yugget | 1 | 2,742 |  23 Agosto 2014, 23:07 pm por MinusFour
 |  
						|   |   | MOSTRAR valores de dos select Bases de Datos
 | bgnumis | 2 | 2,773 |  21 Junio 2015, 23:16 pm por fran800m
 |  
						|   |   | como mostrar todas las columnas AUN con valores null .NET (C#, VB.NET, ASP)
 | irvincnt93 | 1 | 2,731 |  20 Agosto 2015, 16:32 pm por berni69
 |  
						|   |   | Buscar valores en el Registro de windows.... .NET (C#, VB.NET, ASP)
 | **Aincrad** | 2 | 3,159 |  30 Julio 2018, 19:13 pm por **Aincrad**
 |    |