Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Rekisterin muokkaaminen

Sivun loppuun

crafn [05.05.2006 08:18:32]

#

Moi taas kaikille :D
Miten saisn ohjelman lisämään windowsin run-kansioon rekisteriin jonkun avaimen, vai miksi sitä kutsutaan?
Tai yleensäkkin rekisterin muokkaaminen omatekemällä ohjelmalla?
Olisin kiitollinen jos joku tietäisi ja antaisi esimerkkiä! :)

PS. Sori jos kirjotin epäselvästi... Oon nääs koulussa.

EDIT: Tekstiä korjailtu...

Blaze [05.05.2006 10:00:38]

#

WinApilla. Tuossa VB-esimerkki: http://pp.kpnet.fi/blaze/codefaq/#registrywriting

crafn [05.05.2006 12:04:33]

#

Ookei... Kiitti... Yritetään... :)

Edit: Noniin... Apuva kaivataan taas. Eikö tämä ole se käsky jolla luodaan avain?

RegCreateKeyEx();

Mites sitte luodaan merkkijono :D
Onnistuuko se tuolla käskyllä vai tarvitaanko siihen joku muu käsky?

Metabolix [05.05.2006 12:35:14]

#

Katso tuo äskeinen linkki, siellä on esimerkki avaimen luonnista ja arvon muokkaamisesta. Aivan tavallisia char*-merkkijonoja siinä oletettavasti käytetään merkkijonona, ja nähdäkseni kaikki tarpeellinen selviää tuosta samaisesta esimerkistä.

crafn [05.05.2006 15:52:52]

#

Hyvä, kunhan varmistin. :)
...Mutta mitä parametrejä pitäisi antaa näille käskyille jos haluaisin lisätä merkkijonoarvon windowsin run-kansioon?

RegCreateKeyEx();
RegSetValueEx();
RegCloseKey();

Metabolix [05.05.2006 16:28:49]

#

Katso edelleenkin sitä esimerkkiä. Siinä on kohdat Polku, Avain ja Arvo, jotka siis tarkoittavat polkua, avainta ja arvoa. Myös Googlella saa etsiä kyseisten funktioiden kuvauksia, ei ole vaikeaa. MSDN auttaa.

Kun en itse jaksa noita puolestasi etsiä, niin tässä vapaasti suunnilleen C:lle käännetty esimerkki. Varmasti jostain puuttuu &-merkkejä tai muuta, mutta ne saat luvan itse korjata.

HKEY Hanska;
DWORD Olemassa;
SECURITY_ATTRIBUTES SecAttrs;

SecAttrs.nLength = sizeof(SecAttrs);
SecAttrs.lpSecurityDescriptor = 0;
SecAttrs.bInheritHandle = 1;

RegCreateKeyEx(HKEY_CURRENT_USER, Polku, 0, "", 0, KEY_WRITE, &SecAttrs, &Hanska, &Olemassa);
RegSetValueEx(Hanska, Avain, 0, REG_SZ, Arvo, strlen(Arvo));
RegCloseKey(Hanska);

Jos ei näillä eväillä jo ala onnistua, ovat tavoitteet liian ylhäällä.

Blaze [05.05.2006 17:02:35]

#

Metabolix kirjoitti:

Myös Googlella saa etsiä kyseisten funktioiden kuvauksia

Eikä tarvitse edes itse etsiä, kun oon laittanu linkin valmiiks.

crafn [05.05.2006 21:20:38]

#

Noniin... Oon nyt 2 tuntii pelleilly tän kaa ja oon saanu melkee kaikki parametrit paikoilleen...

RegCreateKeyEx(HKEY_CURRENT_USER, "Software/Microsoft/Windows/CurrentVersion/Run",  0, "", 0, KEY_WRITE, &SecAttrs, &Hanska, &Olemassa);
RegSetValueEx(HKEY, "Elma.exe", 0, REG_SZ, NULL, strlen(Avain));
RegCloseKey(HKEY);

Mitä noitten "Arvo" kohtien paikalle pitää laittaa? Oon yrittäny vähä kaikkea...

Metabolix [05.05.2006 22:07:20]

#

No se arvo, jonka haluat kirjoittaa.

crafn [05.05.2006 22:15:15]

#

Mutta jos laitan siihen sen tällätavalla:

RegSetValueEx(HKEY, "Elma.exe", 0, REG_SZ, "E:/Documents and Settings/Tuukka.J-8444B88EE3384/Omat tiedostot/My Skype Received Files/elastomania-full/elastomania/Elma.exe", strlen("E:/Documents and Settings/Tuukka.J-8444B88EE3384/Omat tiedostot/My Skype Received Files/elastomania-full/elastomania/Elma.exe"));

Niin tulee errorit:
expected primary-expression before ',' token
expected primary-expression before ')' token
Mikä neuvoksi ? :S

Metabolix [06.05.2006 00:17:34]

#

No se, että et yrittäisi laittaa parametriksi HKEYtä, joka on siis tyypin nimi, vaan sen oikean muuttujan eli Hanskan.

crafn [06.05.2006 17:09:54]

#

Jee, kiitti nyt toimii! :D


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta