[C++] Autostart programu

Czepek221

Użytkownik
Dołączył
Maj 18, 2010
Posty
26
Witam,

Mam problem z autostartem programu, a bardziej może z tym, że nie mogę dodać nowego klucza do rejestru na Win7. Na XP kod działa doskonale, ale na Win7 nie ma opcji, żeby dodało (mimo tego, że jestem zalogowany na administratorze).

PHP:
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
RegSetValueEx(hKey, REGISTRY_NAME, 0, REG_SZ, (uint8_t*)PathToFile, MAX_PATH);
RegCloseKey(hKey);

Z początku myślałem, że zostały zmienione wartości w rejestrze, ale są te same. Jakieś pomysły na obejście tego? Lub jakiś inny sposób?

Pozdrawiam, Czepek!
 

harbinger

Użytkownik
Dołączył
Styczeń 10, 2012
Posty
91
a może po prostu kopia pliku do C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup ? :)
 

Czepek221

Użytkownik
Dołączył
Maj 18, 2010
Posty
26
a może po prostu kopia pliku do C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup ? :)

Zanim zajrzałem do tematu pomyślałem o tym...

PHP:
osSystems_t os = getOsSystem();
if(os == OS_WIN_XP)
{
	HKEY hKey;
	RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &hKey);
	RegSetValueEx(hKey, REGISTRY_NAME, 0, REG_SZ, (uint8_t*)PathToFile, MAX_PATH);
	RegCloseKey(hKey);
}
else if(os == OS_WIN_VISTA || os == OS_WIN_7)
{
	char buffer[MAX_PATH], userProfile[MAX_PATH];
	GetEnvironmentVariableA("USERPROFILE", userProfile, MAX_PATH);
	sprintf(buffer,"%s\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\%s", userProfile, EXE_NAME);
	if(CopyFile(PathToFile, buffer, true))
	{
		//MessageBox(NULL, "Windows7", NULL, MB_ICONINFORMATION);
	}
}

Pozdrawiam, Czepek!
 
Do góry Bottom