Eli siis tarkoituks ois lukea rekisteristä tietystä kansiosta tai miksi niitä sanotaankaan yksi tietty arvo. Mutta kun en tiedä miten se tehdään. Oon kokeillu RegGetValue() muttakun en tiie mitä tohon pitää antaa parametreiksi kun oon niin vitun tyhmä ja kääntäjä vaa kokoaja vinee jotain. En tajua paskaakaan mitä tuolla MSDN:ssä yritetään kertoa :D
Eli voisko joku ystävällinen pastee tähän esimerkkikoodin kuinka luetaan rekisteristä jotain?
Eli voisko joku ystävällinen pastee tähän esimerkkikoodin kuinka luetaan rekisteristä jotain?
Vastaukset 10
Vanhimmat
Jotakuinkin noin otetaan DWORD arvo. Sovella itse muihin tyyppeihin:
HKEY hKey;
DWORD dwSize, dwType, dwValue;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, polku_tänne, 0, KEY_READ, &hKey);
dwSize = sizeof(DWORD);
RegQueryValueEx(hKey, avaimen_nimi_tänne, 0, &dwType, (LPBYTE)&dwValue, &dwSize);
RegCloseKey(hKey);
Juu kiitos tuosta, mutta nyt kun pistän tuon
RegOpenKeyEx(HKEY_LOCAL_MACHINE, polku_tänne, 0, KEY_READ, &hKey);
niin jos laitan tuohon polku_tänne kohtaan jotain tyyliin: "\Firma\Ohjelma\" nii se luulee että tarkotan tuolla \F jotain escapecodea :S
Eli miten tuohon pitää laittaa oikeaoppisesti se polku?
Heheh.. Ratkaisinkin tuon escapecode ongelman. Se polku siis pitää erottaa / eikä \ merkeillä. Aina oppii uutta. Nyt kun olen saanut tuon kutakuinkin toimimaan, mutta tuo:
RegQueryValueEx(hKey, "MAIN", 0, &dwType, (LPBYTE)&dwValue, &dwSize);
cout
Siis tuon viimeisen rivin pitäisi olla
cout
RegQueryValueEx(
hKey,
"MAIN",
0,
REG_DWORD,//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/registry_value_types.asp
dwValue,
&dwSize);
Jos olisit katsonut vaikka MSDN:stä, olisit huomannut että tuo dwSize, vähän niinkuin nimikin vihjaa, ilmoittaa montako merkkiä onnistuit lukemaan.
dwValue sisältää luetun DWORD arvon. Mitähän tuo 'MAIN' pitää sisällään? Merkkijonon? Kokonaisluvun?
MAIN on tyyppiä REG_SZ. Tuossa yhdessä viestissähän sanoin että tarkoitin dwValue:ta enkä dwSizeä, pieni kirjotusvirhe tai joku. En ole vieläkään onnistunut saamaan sitä arvoa.. antakaa anteeksi, olen idiootti.
autasko jos pistät sen polun näin.
"\\Firma\\Ohjelma\\"
jos siihen vähän syventyisi siihen msdn:ään ni kyllä toikin onnistus varmasti:
tää on nyt ihan lonkalta heitetty kun ei ole mulla wintoosaa ni ei voi testata:
/******************************************/
#define POLKU "\\Ohjelma\\"
#define ARVO "tallessa"
HKEY hroot;
HKEY reg_key;
ULONG i;
char sz1[0x100];
hroot=HKEY_CURRENT_USER;
i=sizeof(sz1);
RegOpenKeyEx(hroot,POLKU,0,KEY_ALL_ACCESS,reg_key);
RegQueryValueEx(reg_key,ARVO,NULL,REG_SZ,&sz1,&i);
RegCloseKey(reg_key);
/*******************************************/
siis tuolla PITÄÄ olla joku arvo laitettuna jos meinaa että lukeminen onnistuu.
(current_user\Ohjelma\)
RegQueryValueEx(reg_key,ARVO,NULL,REG_SZ,(UCHAR*)sz1,&i);