Das Ausführen mit Administrationsrechten habe ich eigentlich auch versucht, funktioniert hat es aber nicht. Der Eintrag in HKEY_CURRENT_USER funktioniert bei mir jetzt (auch ohne Admin-Rechte).
Danke für die Hilfe!
So, hier nochmal das ganze in aufgeräumter Form für alle die das auch noch brauchen:
Code:
#include <windows.h>
#include <string.h>
#include <stdio.h>
using namespace std;
int main(int agvc, char *argv[])
{
char reg_path[MAX_PATH]={0};
char name[100];
BYTE cString[100];
int error=0;
HKEY hKey;
HKEY hKey_M = HKEY_CURRENT_USER;
strcpy(reg_path,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
if(argv[1])strcpy(name,argv[1]);
if(argv[2])strcpy((char*)cString,argv[2]);
char c;
int i=-1;
do
{
i++;
if(reg_path[i]=='\\' || reg_path[i]==0)
{
c=reg_path[i];
reg_path[i]=0;
if(RegCreateKeyEx(hKey_M,reg_path,0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0)!=ERROR_SUCCESS)
{
error+=1;
}
reg_path[i]=c;
}
}while(reg_path[i]!=0);
if(RegSetValueEx(hKey,name,0,REG_SZ,cString,strlen((const char*)cString)+1) !=ERROR_SUCCESS)
{
error+=1;
}
RegCloseKey(hKey);
return error;
}
Übergeben werden Eintragsname und Pfad (jeweils mit \\). Ich hoffe es hilft irgendjemandem