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