Código
#include <iostream> #include <windows.h> #include <conio.h> using namespace std; int main(int argc, char *argv []) { //asignamos key el valor nulo HKEY key = 0; //creamos la regla RegCreateKey(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&key) //elegimos la ruta donde se creara LPCTSTR ruta = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\"); //con status podemos saber si la regla se creo correctamente long status = RegOpenKey(HKEY_CURRENT_USER, ruta, &key); if (status != 0) { cout << "Win error: " << GetLastError() << endl; } else { //nombre de nuestra subclave string subclave="System"; //valor de la subclave string valor="C:\\Windows\\tuprograma.exe"; //hacemos la conversion del nombre de la subclave y la subclave 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) { //si falla sera porque no teneis permisos o crear es diferente a 0 cout << "Win error: " << GetLastError() << endl; } else { //se creo correctamente ya que crear vale 0 que es el valor creado cout << "Subclave creada correctamente" << endl; } } RegCloseKey(key); //hacemos un getch para que no se cierre nuestro programa y ver que se creo //correctamente si quereis lo podeis quitar _getch(); }