elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  mostrar los valores de una key del registro de windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: mostrar los valores de una key del registro de windows  (Leído 1,848 veces)
andres_89a

Desconectado Desconectado

Mensajes: 2


Ver Perfil
mostrar los valores de una key del registro de windows
« 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.


En línea

Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.645


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: mostrar los valores de una key del registro de windows
« Respuesta #1 en: 1 Octubre 2012, 14:09 pm »

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 Desconectado

Mensajes: 2


Ver Perfil
Re: mostrar los valores de una key del registro de windows
« Respuesta #2 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.. =)
En línea

Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.645


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: mostrar los valores de una key del registro de windows
« Respuesta #3 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.
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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Valores del registro
Programación Visual Basic
Kizar 1 2,444 Último mensaje 27 Octubre 2005, 20:28 pm
por Kizar
Mostrar los valores más altos
Bases de Datos
Yugget 1 1,176 Último mensaje 23 Agosto 2014, 23:07 pm
por MinusFour
MOSTRAR valores de dos select
Bases de Datos
bgnumis 2 1,162 Último mensaje 21 Junio 2015, 23:16 pm
por fran800m
como mostrar todas las columnas AUN con valores null
.NET (C#, VB.NET, ASP)
irvincnt93 1 1,234 Último mensaje 20 Agosto 2015, 16:32 pm
por berni69
Buscar valores en el Registro de windows....
.NET (C#, VB.NET, ASP)
**Aincrad** 2 524 Último mensaje 30 Julio 2018, 19:13 pm
por **Aincrad**
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines