Oppure

Loading
09/06/08 20:46
ciao
vorrei modificare tramite un programma le tre chiavi correlate allo sfondo del desktop, che si trovano in :
HKEY_CURRENT_USER\Control Panel\Desktop
si chiamano rispettivamente Wallpaper,OriginalWallapaper e ConvertedWallpaper
sapete come si fa a modificarle ? perchè io non ci sono riuscito
ho trovato tre modi, due funzionano per meta, il terzo per niente

primo :

system("reg add HKCU\Control Panel\Desktop /V Wallpaper /T REG_SZ /F /D C:\a.bmp";);

che andrebbe benissimo se non fosse per il fatto che la cartella che contiene la mia chiave è divisa in due nomi, quindi cè uno spazio in mezzo e la linea di comando non funziona

poi ho trovato

HKEY hKey1;

	long err;

	TCHAR RegValue1[] =L"Wallpaper";

	BYTE ProgramPath[]= "C:\a.bmp"; 

	err=RegCreateKey(HKEY_CURRENT_USER,L"Control Panel\Desktop",&hKey1); 
	if(err!= ERROR_SUCCESS) cerr<<"Error create key"; 
	err=RegSetValueEx(hKey1,RegValue1,0,REG_SZ,ProgramPath,sizeof(ProgramPath)); 
	if(err!= ERROR_SUCCESS) cerr<<"Error set value"; 
	RegCloseKey(hKey1); 




che pero non va perchè il valore della chiave è diverso da quello che metto io nel codice, appaiono quei quadratini, che non riesce e visualizzare

infine ho trovato
TRegistry *regKey = new TRegistry; //creo un oggetto che mi permetterà di lavorare sul registro di sistema.
regKey->RootKey = HKEY_CURRENT_USER; //stabilisco la radice
regKey->OpenKey("Software\Microsoft\Windows\CurrentVersion\Run", true); //vado alla chiave che mi interessa
regKey->WriteString("myProg", "C:\WINDOWS\System\myProg.exe"); //creo il valore che mi interessa
regKey->CloseKey(); //interrompo l'associazione tra l'oggetto regKey e la chiave di registro 

che pero il compilatore mi dice che ci sono degli errori nelle librerie Boost


come faccio ?
Ultima modifica effettuata da 09/06/08 21:13
09/06/08 20:55
gantonio
Postato originariamente da munkaka:
system("reg add HKCU\Desktop /V System32 /T REG_SZ /F /D C:\Windows\System32\SysService.bat";);

che andrebbe benissimo se non fosse per il fatto che la cartella che contiene la mia chiave è divisa in due nomi, quindi cè uno spazio in mezzo e la linea di comando non funziona


Beh ... racchiudi tra virgolette il percorso ...
aaa
09/06/08 21:12
racchiudi tra virgolette ?

cosi ?
system("reg add 'HKCU\Control Panel\Desktop' /V Wallpaper /T REG_SZ /F /D C:\a.bmp";);
non va

scusa l'ignoranza
09/06/08 21:16
gantonio
Intendo le doppie virgolette, quelle sopra il 2

"
aaa
09/06/08 21:21
ho gia provato anche quelle
cosi

system("reg add "HKCU\Control Panel\Desktop" /V Wallpaper /T REG_SZ /F /D C:\a.bmp";);

non lo compila

e cosi

system("reg add ""HKCU\Control Panel\Desktop"" /V System32 /T REG_SZ /F /D C:\a.bmp";);

lo compila ma non va
Ultima modifica effettuata da 09/06/08 21:47
09/06/08 22:10
gantonio
Guarda che le doppie virgolette, all'interno di una stringa costante, in C si indicano con

\"
aaa
09/06/08 22:22
sono riuscito
grazie mille