Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: avesudra en 13 Julio 2012, 00:30 am



Título: [C]Eliminar un valor de una clave en el registro de Windows.
Publicado por: avesudra en 13 Julio 2012, 00:30 am
¡Buenas a todos! Pues después de leer demasiado y no encontrarle el problema decido que me ayudeis, el código que estoy utilizando para "borrar" supuestamente el valor en el registro es esta, pero me lanza el mensaje no se ha podido abrir la clave :huh::
Código
  1.    LONG lresult;
  2.    HKEY hKey;
  3.    lresult=RegOpenKeyExA(HKEY_LOCAL_MACHINE, "software\\microsoft\\windows\\currentversion\\run", KEY_ALL_ACCESS,0, &hKey);
  4.    if (lresult== ERROR_SUCCESS)
  5.    {
  6.    RegDeleteValueA(hKey,"Nuevo");
  7.    MessageBoxA(0,"¡Clave eliminada!","¡Clave eliminada!",NULL);
  8.    RegCloseKey(hKey);
  9.    }
  10.    if (lresult != ERROR_SUCCESS)
  11.        {
  12.            if (lresult == ERROR_FILE_NOT_FOUND) {
  13.                MessageBoxA(0,"No se ha encontrado la clave","No se ha encontrado la clave",NULL);
  14.  
  15.            }
  16.            else {
  17.                MessageBoxA(0,"Error abiendo la clave","Error abiendo la clave",NULL);
  18.  
  19.            }
  20.        }
  21.  

EDITO: Es muy curioso que si ejecuto un comando desde system() para borrar esa clave del registro no funciona , sin embargo si salgo de la apli y me voy a la linea de comandos y ejecuto el mismo comando si , ¿pero esto que es? :xD Supongo que no tendrá permisos la apli, a ver si alguien me ilumina.