martes, 2 de junio de 2015

30 - Tutorial de C++ en español - Regedit (Ejecutar programas al inicio de Windows)




En este capítulo del Tutorial de C++ crearemos un programa que nos permitirá crear subclaves en el Registro de Windows concretamente en la ruta HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ que es donde se guardan las subclaves que permiten ejecutar programas al inicio de Windows.

Para poder realizar este programa es necesario utilizar la librería nativa de Windows "windows.h", para tener más información sobre los tipo de datos de Windows ir al siguiente enlace ... https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx

regedit.cpp

#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
    
 HKEY * key;
 LPCTSTR ruta = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\");
 long status = RegOpenKey(HKEY_LOCAL_MACHINE, ruta, key);
 if (status != 0)
 {
  cout << "No se puede abrir la clave" << endl;         
 }
 else
 {
  cout << "Nombre de la subclave: ";
  string subclave;
  getline(cin, subclave);
  cout << "Valor de la subclave: ";
  string valor;
  getline(cin, valor);
  LPCTSTR _subclave = TEXT(subclave.c_str());  
  LPCTSTR _valor = TEXT(valor.c_str());
  long crear = RegSetValueEx(*key, _subclave, 0, REG_SZ, (LPBYTE)_valor, strlen(_valor)*sizeof(char));
  if (crear != 0)
  {
     cout << "Ha ocurrido un error al crear la subclave" << endl;       
  }
  else
  {
    cout << "Subclave creada correctamente" << endl;  
  }
 }
 
 RegCloseKey(*key);

 system("PAUSE");
 return 0;
}