What do you mean it's "bombing"? What error do you get? (Copy & paste the full error) Are you using .NET? Are you using a version of .NET that is not supported on Windows XP? Is the specific .NET Framework installed on the computer?
I have a 3 workstation sale. Same program installation on all 3 workstations. 2 Windows 7 machines work fine. The XP machine is bombing in the beginning. I have deployed 3 files. turboactivate.exe, the .dat file and the .dll file. As mentioned, this works fine on 2 machines. Any clue why the xp machines is not not working? I compiled using the x86 as suggested.
Thanks in advance.
What do you mean it's "bombing"? What error do you get? (Copy & paste the full error) Are you using .NET? Are you using a version of .NET that is not supported on Windows XP? Is the specific .NET Framework installed on the computer?
using .net?
vb.net
framework 4
The software runs fine with the following code commented.
'Try
' ' Check if we're activated, and every 90 days verify it with the activation servers ' ' In this example we won't show an error if the activation was done offline ' ' (see the 3rd parameter of the IsGenuine() function) -- http://wyday.com/limelm/help/offline-activation/ ' Dim gr As IsGenuineResult = TurboActivate.IsGenuine(90, 14, True)
' isActivated = (gr = IsGenuineResult.Genuine _ ' OrElse gr = IsGenuineResult.GenuineFeaturesChanged _ ' OrElse gr = IsGenuineResult.InternetError)
' If gr = IsGenuineResult.InternetError Then
' 'TODO: give the user the option to retry the genuine checking immediately ' ' For example a dialog box. In the dialog call IsGenuine() to retry immediately ' End If 'Catch ex As TurboActivateException ' MessageBox.Show("Failed to check if activated: " + ex.Message) 'End Try
'TurboActivate.Activate() 'If TurboActivate.GetFeatureValue("is_trial") = "Yes" Then ' frmTrialDisplay.ShowDialog() 'End If
'ShowTrial(Not isActivated)
' if this app is activated then you can get a feature value ' See: http://wyday.com/limelm/help/license-features/ 'If isActivated Then ' Dim featureValue As String = TurboActivate.GetFeatureValue("your feature name")
' 'TODO: do something with the featureValue 'End If
I will try 1 other test. I will copy the entire contents of the app folder from a machine that is working to be sure I'm not missing any dll's, but I'm sure I have everything duplicated on all 3 workstations. Only the xp machine is struggling with the above code.
Please confirm what is required for redistribution. I believe it is only 3 files: turboactivate.exe, turboactivate.dat and turboactivate.dll.
the 'bombing' meant that as soon as the software was launched, it through the windows system error where is indicated an error has been encountered. Send Report or Cancel. The detail are vague when I view. It only indicates a problem with my .exe. My software never launched. When I comment out the the limelim code (ref: previous post), it runs fine.
Make sure your XP machine has the latest updates (Service Pack 3 and all updates since that release).
It goes without saying that you must include the TurboActivate.dll / TurboActivate.dat with your app. If you're still getting errors then you need to give me the full error. Copy & paste the full thing.
Also, try running TurboActivate.exe (make sure the TurboActivate.dll is in the same folder). Does it run?
This is what's crashing:
TurboActivate.Activate()If TurboActivate.GetFeatureValue("is_trial") = "Yes" Then frmTrialDisplay.ShowDialog()End If
First of all, none of it is in a try/catch block. Do that.
Secondly, GetFeatureValue() & Activate() can both throw exceptions under more than one circumstance. Hence the try/catch block. Also, you shouldn't be calling Activate() on every run of your app.
Wyatt,Thanks for getting back. I will put in a try/catch block.So you are saying I do not need the line 'TurboActivate.Activate' ?The If statement will suffice?
So you are saying I do not need the line 'TurboActivate.Activate' ?
Correct. You should only use that to actually activate your software. And if you're using the TurboActivate Wizard, then you'll probably never call that function in your app.
The If statement will suffice?
Yes, that checks if you're activated and re-verifies with the server every N days (where you have 90 days).
Ok i figured out part of the issue.Norton was blocking TurboActivate. I turned off Norton and all worked fine, so I went into the Norton firewall and selected ALLOW for my program and turboactivate and all is working fine.
in regards to calling turboactivate.activate, i make this call elsewhere to display my license fields, otherwise they will not display, unless I only need to do this once in order to get the field values on the local machine. Please verify.
It would also be nice if there was some clear documentation regarding the proper procedures. LimeLM is great and it is very flexible with license fields. I'm just not sure of the clear process of shipping a trial, should I issue a new key and use a license field to indicate that it is not a trial anymore and that I should not do any trial checking and only check a license field for an expiration date and then do whatever I want based on the expire date.
Also, do I have any way from within my software to get the unused activations for a particular license? Right now I'm setting a license field for total_acts and setting this when a purchase is done with fastspring. I would like to show the customer in my form, how many unused activations they have. The other license fields are working great and displaying the product key and other information I capture at purchase.
in regards to calling turboactivate.activate, i make this call elsewhere to display my license fields, otherwise they will not display, unless I only need to do this once in order to get the field values on the local machine. Please verify.
You only need to activate once to get he license fields. If you see the example project we have it shows using the TurboActivate Wizard to activate once. If you build the dialog yourself, only activate once. Dont activate on every run of your app.
I'm just not sure of the clear process of shipping a trial [...]
We're making this clearer.
I'm just not sure of the clear process of shipping a trial, should I issue a new key and use a license field to indicate that it is not a trial anymore and that I should not do any trial checking and only check a license field for an expiration date and then do whatever I want based on the expire date.
You have 2 choices:
1. Use our built-in unverified trial functions (useTrial, TrialDaysRemaining, ExtendTrial() )
2. Or use verified trials (a product key with a custom license field like "trial_expires".
For Verified trials, just treat the key as any other key (1. the customer enters the product key in your app or the TurboActivate wizard, 2. the customer activates using the TA Wizard or using the ACtivate() funciton,). Then, if the custom license field "trial_expires" is present and set, then the key is a trial key. otherwise the key is a "full key"
Make sense?
Also, do I have any way from within my software to get the unused activations for a particular license?
No, not currently.
Thanks for getting back with me Wyatt. Once I get this established you will be done with me.
So if I use an unverified trial - no product key.They purchase from fastspring.At fastspring, I get the customer information etc... and set an 'expires_on' license field which will be 12 months from the date of purchase and set it on the product key.Then, I want to check that license field periodically to notify the customer they need to renew.Does the trial checking stop with the new product key? I believe it is based on my .dat file that is downloaded with my trial. Do I need to bypass trial checking?Is that correct?
Also, if they deactivate the workstation, I'm assuming it reverts back to an unverified trial with X days remaining on the trial or 0 if they went to the end of the trial.Correct?
Are there any advantages of using the verified vs. unverified. Either way I will get the customer information from fastspring. They have to go there to download the trial and I get their information. Currently, I'm issuing a product key to fastspring and I know it is a trial, so I set a license field to 'is_trial' and 'expires_on". I have to calculate days remaining manually. (today - 'expires_on').
Your recommendation is appreciated!
We've update our "Timed trials in your app" article to talk about verified trials and how to use them.
So if I use an unverified trial - no product key.
Yes.
At fastspring, I get the customer information etc... and set an 'expires_on' license field which will be 12 months from the date of purchase and set it on the product key.
For verified trials, not unverified trials.
Does the trial checking stop with the new product key?
I don't know what you're asking.
I believe it is based on my .dat file that is downloaded with my trial. Do I need to bypass trial checking?
That's unverified trials.
Also, if they deactivate the workstation, I'm assuming it reverts back to an unverified trial with X days remaining on the trial or 0 if they went to the end of the trial.
If you're using unverified trials in your app. You should really use one or the other. Not both. That defeats the purpose if you use both.
Are there any advantages of using the verified vs. unverified.
We've described them in the updated article.