Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - modificare chiavi di registro
Forum - C/C++ - modificare chiavi di registro

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
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
Codice sorgente - presumibilmente C/C++

  1. HKEY hKey1;
  2.  
  3.         long err;
  4.  
  5.         TCHAR RegValue1[] =L"Wallpaper";
  6.  
  7.         BYTE ProgramPath[]= "C:\\a.bmp";
  8.  
  9.         err=RegCreateKey(HKEY_CURRENT_USER,L"Control Panel\\Desktop",&hKey1);
  10.         if(err!= ERROR_SUCCESS) cerr<<"Error create key";
  11.         err=RegSetValueEx(hKey1,RegValue1,0,REG_SZ,ProgramPath,sizeof(ProgramPath));
  12.         if(err!= ERROR_SUCCESS) cerr<<"Error set value";
  13.         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
Codice sorgente - presumibilmente C/C++

  1. TRegistry *regKey = new TRegistry; //creo un oggetto che mi permetterà di lavorare sul registro di sistema.
  2. regKey->RootKey = HKEY_CURRENT_USER; //stabilisco la radice
  3. regKey->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true); //vado alla chiave che mi interessa
  4. regKey->WriteString("myProg", "C:\WINDOWS\System\myProg.exe"); //creo il valore che mi interessa
  5. 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 il 09/06/2008 alle 23:13
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 22:55
Lunedì, 09/06/2008
Testo quotato

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 ...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:12
Lunedì, 09/06/2008
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

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 23:16
Lunedì, 09/06/2008
Intendo le doppie virgolette, quelle sopra il 2

"

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:21
Lunedì, 09/06/2008
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 il 09/06/2008 alle 23:47
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 0:10
Martedì, 10/06/2008
Guarda che le doppie virgolette, all'interno di una stringa costante, in C si indicano con

\"

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 0:22
Martedì, 10/06/2008
sono riuscito
grazie mille

PM Quote