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...
WinApilla. Tuossa VB-esimerkki: http://pp.kpnet.fi/blaze/codefaq/
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?
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ä.
Hyvä, kunhan varmistin. :)
...Mutta mitä parametrejä pitäisi antaa näille käskyille jos haluaisin lisätä merkkijonoarvon windowsin run-kansioon?
RegCreateKeyEx(); RegSetValueEx(); RegCloseKey();
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ä.
Metabolix kirjoitti:
Myös Googlella saa etsiä kyseisten funktioiden kuvauksia
Eikä tarvitse edes itse etsiä, kun oon laittanu linkin valmiiks.
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...
No se arvo, jonka haluat kirjoittaa.
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
No se, että et yrittäisi laittaa parametriksi HKEYtä, joka on siis tyypin nimi, vaan sen oikean muuttujan eli Hanskan.
Jee, kiitti nyt toimii! :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.