Mulla on Excel taulukko, joka käyttää paljon VBA:lla koodattuja toimintoja. Haluan tehdä tuosta taulukosta myös shareware tyyppisen testiversion rajoitetulla käyttöajalla.
Olen ajatellut mm. rekisteritietojen hyväksikäyttämistä.
Olen lukenut mm. aiheen https://www.ohjelmointiputka.net/keskustelu/1222-vb-ja-windowssin-rekisteri ja googlennut vba savesettings ohjeita, mutta en ole varma voiko Excelpohjainen VBA edes lukea muualta rekisteristä kuin HKEY_CURRENT_USER\Software\VB and VBA Program Settings? Olen ymmärtänyt, että vain tuonne voidaan tallettaa tietoa (voidaanko viimeiseen hakemistoon tehdä alihakemistoja vielä Excelistä käsin?)
Onkahan tuo tarpeellista sillä koodihan on pelkää skriptausta eikä sitä käännetä. Tarkoitan että kuka tahansa voi muuttaa taulukossa olevaa koodia ja poistaa mahdolliset rajoitukset.
En. koodi on tarkoitus suojata salasanalla.
Taisin keksiä ratkaisun. Miltä kuullostaa?
Dim paiva As Date Dim nyt As Date Dim loppu As Date Dim ero As Date nyt = Now ' tarkistetaan onko päivä tallennettu If GetSetting("Testi", "Osa1", "Paiva") <> "" Then paiva = GetSetting ("Testi", "Osa1", "Paiva") 'aikaisempi päivä Else SaveSetting "Testi", "Osa1", "Paiva", nyt 'tänään asennettu End If 'päättymisaika If paiva <> "" Then loppu = paiva + 30 'päättymispäivä ero = loppu - Now 'paljonko päättymispäivään aikaa Else loppu = nyt + 30 ero = loppu - Now End If
Kyllä tuo ratkaisu varmaankin toimii, mutta pystyykö se estämään makron käyttöä, jos lähdekoodia pääsee editoimaan? Vähän taitavampi käyttäjä löytää helposti kohdan, jossa käyttöoikeus tarkistetaan, ja voi poistaa sen.
Tarkoitus onkin suojata koodit salasanalla, joka pysyy minulla ja jota voin muuttaa milloin haluan. Ehkä se lienee riittävä, kun en kerran parempaa keksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.