modified of added feature fields

Hello all,

I'm a little confused when I add new (or modify) feature fields. What I did I downloaded the turboactivated.dat (is that required for modifications to feature fields?).Then in my code I set the versionguid and perform an turboactivate.isgenuine. Now what I expected is the "GenuineFeaturesChanged" but I got the "Genuine" as result. But I did get an error, the feature does not exist (reading the added feature (the existing, not modified fields are ok).I also tried the isactivated function, but no change.

When I, ofcourse, deactivate and then activate it works ok.Is that the solution, so basically with each start of the software deactivate and activate the license again?

What triggers then the "GenuineFeaturesChanged" when calling the turboactivate.isgenuine?

btw It is a checked field, I've noticed that with string fields you need a default value.

tnx in advance,

regards

Arie

We have a vastly revised custom license fields article coming out in about a week which makes these things much clearer.

What I did I downloaded the turboactivated.dat (is that required for modifications to feature fields?).

No, it's not.

btw It is a checked field, I've noticed that with string fields you need a default value.

No, the default value is not necessary. It's an optional convenience.

What triggers then the "GenuineFeaturesChanged" when calling the turboactivate.isgenuine?

When your app actually contacts the servers. Every nDaysBetweenChecks. Does that mean you should set nDaysBetweenChecks to 0? No, absolutely not. That would force customers to re-verify with the servers every single time they start your app.

So, you should do a mix. Keep using IsGenuineEx() with a value for nDaysBetweenChecks to something like 30, 60, or 90, and set the grace period to about 2 weeks (14), and then somewhere else in your app (like an "about box") give the user to get new custom license fields immediately. This way if they "buy fields" from you -- that is, a custom license field is changed or added based on a purchase from the customer -- they can get those changes immediately without having to wait nDaysBetweenChecks.

Does that make sense?

Hello Sam,

thnx for your reply, sorry for the late response, but here we go...

the thing is that I need to check everytime when a users starts excel if the license is still valid (this because of the type of software we sell, and the trial method we use, via feature fields). I use Isgenuine() for this (in VB so without any parameters). Now I hoped that if I add a new feature field to the version, and start the software again and run turboactivate.isgenuine that I a connection to the server is made and the new feature field would be available.

so basically;

IGenuine = TurboActivate.IsGenuinestLicense.Deactivation_Allowed = TurboActivate.GetFeatureValue("xyx")

but on the the second line I get the error that the field does not exist?

regards

Arie

Make sure the custom license field has "readable from your app" checked inside LimeLM. Make sure the computer you're working with has a specific product key, and that;'s the product key you're editing on the servers. Use GetPkey() if you don't know what product key is activated.

Hello Sam,

yep the 'readable' field is checked. I 'm working on my development pc and that one has a license activated (so the product key is there).

Well, then there's an issue in your code. What programming language are you using (VB6 or VB.NET)? Give me a full, unaltered snippet of the calls you're making.

Are you using the latest version of TurboActivate (including the latest integration files)? If not, do that now.

Also, Note: custom license field are case-sensitive.

So, if your field is "UpdateExpires", then you can't use "updateExpires" in your app.

Hey sam,

I guess i'm using the last version (turboactivate.dll 2014-10-20).We're using vb.net.We only use lowercase feature fields.

sniplet;

Try

TurboActivate.VersionGUID = "numbers here"

Try IGenuine = TurboActivate.IsGenuine() bTampered = False Catch ex As Exception MsgBox(ex.Message, vbInformation) bTampered = True End Try

Try stLicense.Deactivation_Allowed = TurboActivate.GetFeatureValue("xyx") Catch ex As Exception

End Try

Send us a small program (the code the TurboActivate.dat, and a product key with that license field set) that reproduces this. My guess is that the custom license field name doesn't exists (i.e. the field in your app doesn't match the field name in LimeLM).

You can send it to support@wyday.com

Hello Sam,

I've send you the requested info via the mail, did you receive it?

regards

Arie

Yes, the "xxy" custom license field does not exist for that product version in LimeLM. You have to add the custom license field to each product version in LimeLM. Product keys cannot use custom license fields from other versions.

Does that make sense?

Yes that's correct, but the issue is - first register correctly (so without the Feature Field) - than add the feature field - then run the code again with reading the added Feature field

then I get the error, so if you want to reproduce this you need to add the field yourself because if you register while the field is present it will work ok. So if we need to add a feature field later on, then, for existing clients (registrations), it goes wrong

regards

Arie

I really don't know what you're asking. Go to a product key page. Does the custom license field exist there? If not, then you won't be able to read it from your app. Does it have a value? If not, then you won't be able to read it from your app. Did you add it or change it since the customer activated your app? Then they'll need to re-activate to read the new value. This is covered here: http://wyday.com/limelm/help/license-features/

Does all of that make sense?

If not, can you tell me exactly what is confusing you.

The part what is not working for us is:

"Did you add it or change it since the customer activated your app? Then they'll need to re-activate to read the new value."

We use the vb.net function isGenuine for this.

"Does it have a value? If not, then you won't be able to read it from your app."

by the way; in this case it is a check box, not ticked, only created, does it then has a value?

The part what is not working for us is:

"Did you add it or change it since the customer activated your app? Then they'll need to re-activate to read the new value."

We use the vb.net function isGenuine for this.

You should absolutely not try to re-activate every single time the user runs your app. That's bad behavior that will make your users angry (because it will force them to always have an active internet connection to use your app -- among other problems).

So, what's the problem you're trying to solve? Is it that a customer purchases a module later that you enable by changing a custom license field?

by the way; in this case it is a check box, not ticked, only created, does it then has a value?

Yes. Its value is "0".

the main issue here is that we are currently still in development but customers already purchased (or are in trial) the software. So it occurs that we need to add feature fields to the product while the user has already registered the software. But when the users updates the software, he get's the error that the (new) feature fields don't exist. While we are using the isgenuine command.

Well, it sound like the easiest solution for this case (because it sounds like something that will just happen in the development of your app, not in the real-world distribution of your app, is to just tell the user to Deactivate() and then have them re-activate(). Simple as that.

Or, if you anticipate this happening again in the future, have your app try to read the custom license fields that it needs (i.e. non-optional ones), and if they don't exist then re-activate().

These scenarios are all covered in the custom license fields article.