Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 33boy33 en 14 Julio 2015, 19:36 pm



Título: La funcion solo funciona con texto entrecomillado!
Publicado por: 33boy33 en 14 Julio 2015, 19:36 pm
Estoy desesperandome ya con esta maldita funcion:

Código:
ch = RegGetValue(HKEY_LOCAL_MACHINE, TEXT(t), key2, RRF_RT_ANY, NULL, (PVOID)&vals,(LPDWORD)&value_length);

key2 es el nombre de la clave a la que se quiere acceder, por ejemplo yo he creado una manualmente llamada prueba y si pongo "prueba" entre comillas en esa casilla no hay ningun problema pero si pongo uso una variable, vals que es la variable que devuelve el valor de la clave aparece vacia, esto lo puedo ver con un cout. he estado mirando convertir el char a LPCTSTR pero no me acabo de aclarar y lo que encuentro no funciona.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724868%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724868%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)


Título: Re: La funcion solo funciona con texto entrecomillado!
Publicado por: x64core en 15 Julio 2015, 01:18 am
Estoy desesperandome ya con esta maldita funcion:

Código:
ch = RegGetValue(HKEY_LOCAL_MACHINE, TEXT(t), key2, RRF_RT_ANY, NULL, (PVOID)&vals,(LPDWORD)&value_length);

key2 es el nombre de la clave a la que se quiere acceder, por ejemplo yo he creado una manualmente llamada prueba y si pongo "prueba" entre comillas en esa casilla no hay ningun problema pero si pongo uso una variable, vals que es la variable que devuelve el valor de la clave aparece vacia, esto lo puedo ver con un cout. he estado mirando convertir el char a LPCTSTR pero no me acabo de aclarar y lo que encuentro no funciona.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724868%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724868%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)
Ejemplo:
Código:
    BYTE Buffer[MAX_PATH * 4];
    DWORD Size;

    Size = sizeof(Buffer);
    RegGetValue(
        HKEY_CURRENT_USER,
        _T("Environment"),
        _T("PATH"),
        RRF_RT_REG_SZ,
        NULL,
        Buffer,
        &Size);


Por cierto, no podes decir que vas a convertir de char a LPCTSTR/TCHAR ya que realmente esos tipos no existen, en resumen son para compilar las aplicaciones para ASCII o Unicode sin necesidad de modificar el código.