saludos, cuando escribo en el registro del usuario no tengo problema HKEY_CURRENT_USER pero cuando lo hago en HKEY_LOCAL_MACHINE sencillamente no lo escribe .
HKEY hkey;
RegOpenKeyEx (HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\run",0, KEY_SET_VALUE, &hkey);
RegSetValueEx (hkey, "algo", 0, REG_SZ,(const unsigned char * ) registro, sizeof registro );
RegCloseKey (hkey);
he probado ejecutarlo con click derecho -> permisos de admin y habilitar los tokens(no se si lo hago mal)
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &ProcessToken)) {
SetPrivilege(ProcessToken, SE_RESTORE_NAME, TRUE);
HKEY hkey;
RegOpenKeyEx (HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\run",0, KEY_SET_VALUE, &hkey);
RegSetValueEx (hkey, "hola", 0, REG_SZ,(const unsigned char * ) registro, sizeof registro );
RegCloseKey (hkey);
}
la funcion de setprivilege la saque de la msdn
https://msdn.microsoft.com/en-us/library/aa446619%28VS.85%29.aspxgracias de antemano
siempre que escribo aca pidiendo ayuda , suelo encontrar la solucion 5 mins despues xD , pero de todas formas me surge una pregunta con lo que encontre.
al parecer se estaba compilando una aplicacion de 32 bits y en ese caso windows utliza el registro
HKEY_LOCAL_MACHINE\software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run.
¿ el registro funciona de todas formas,cambia algo?.¿La aplicacion se iniciara con windows?