|
The source code is located at the top of the page. It's the link titled "Download Sourcecode".
Tyler Menezes
www.TylerM.info
|
|
|
|
|
Loved your program of Registration Process but thought that you would like to know something about it.
The registration trial period can easily be changed by changing the system date. The end user can easily increase the trial by setting the date back.
Is this anything you did intentialy or have you just missed it.
I am a beginner programmer and have just started programming. I do coding as a hobby. My friend asked me to make him an invoice software, which I did and people liked it very much. Now many people are asking me to make them their personalized software also and I would like to add Trial Period and Registration Process on.
Please help me in this matter. if you can update the program or tell me where I am going wrong.
I am using Visual Studio 2008 (I also have 2005) your program updated in both successfully but the problem with change in system date remains. (even in the demo program downloaded from CodeProject.com)
|
|
|
|
|
Hi,
During the last two days, I have spent most of my time looking at your program and trying to understand your code.
Now I have created my own version of it, in which almost all of the code is copied from your project, the only thing which I have changed is that now the program keeps track of the time the program is used so that the date change problem is solved.
Now I want to ask your permission if I can post it as my own article here at CodeProject and my own website (which is not up yet). I have mentioned your name at the main form and I am not someone who takes credit for others work.
|
|
|
|
|
This is simply the best that can be done. There is no way for this program to be able to tell if the user changed the date. The program tries to solve this by attempting to update the date and time with a time server, but this may not always work for various reasons.
In a new version I will soon release, an option will be provided to check the date with a server. This is not optimal, however, because this requires that all your customers have internet access every time they want to launch the program while it's in a trial mode.
One feature that was added to this version to prevent this is that if the user changes the date to one that is older than the time the trial started, it will lock them out.
In software which resides on a client's computer, it is always possible to crack trial periods and DRM. It is assumed, however, that rather than be so determined, most people will simply pay the money. There are ways to increase the security, but even large companies like Adobe have their software registration process cracked regularly.
One note about this method of bypassing the restriction: changing your local system date will likely cause other problems for the user, and so it's assumed that most people would rather buy the software than go through this. For example, my internet router refuses to let me connect when the date is too far out of sync.
Tyler Menezes
www.TylerM.info
|
|
|
|
|
|
"Have you read my other reply"
No, didn't see it and it wasn't in my email for some reason.
Feel free to upload it if you want. If you want to keep it closed-source that's cool, too. If you upload it as a separate project, however, be sure to link to this article - that's all I ask.
Additionally, if there's just a few really small changes, you could probably just submit the changes and I'll add a link to your reply in the article. As I mentioned, this is no longer supported as I plan to release a new version soon that has the same functionality as what it seems your changes have.
Tyler Menezes
www.TylerM.info
|
|
|
|
|
How/where did you get the background images for the forms?
Also, this is fantastic! I'm not using it, though, I'm making my own version.
|
|
|
|
|
Ok I tried to add this program to one of my programs but im getting this error
Error 13 Overload resolution failed because no accessible 'DateDiff' can be called without a narrowing conversion:
'Public Function DateDiff(Interval As String, Date1 As Object, Date2 As Object, [DayOfWeek As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [WeekOfYear As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Long': Argument matching parameter 'Interval' narrows from 'Microsoft.VisualBasic.DateInterval' to 'String'.
'Public Function DateDiff(Interval As Microsoft.VisualBasic.DateInterval, Date1 As Date, Date2 As Date, [DayOfWeek As Microsoft.VisualBasic.FirstDayOfWeek = FirstDayOfWeek.Sunday], [WeekOfYear As Microsoft.VisualBasic.FirstWeekOfYear = FirstWeekOfYear.Jan1]) As Long': Argument matching parameter 'Date1' narrows from 'String' to 'Date'.
on
Public Function DiffDate(ByVal OrigDay As String, ByVal OrigMonth As String, ByVal OrigYear As String)
Try
===[ Dim D1 = OrigDay & "/" & OrigMonth & "/" & OrigYear ]=== This is were the error takes me
Return DateDiff(DateInterval.Day, D1, DateTime.Now)
Catch
Return 0
End Try
End Function
how can i fix it?
modified on Saturday, May 31, 2008 7:26 PM
|
|
|
|
|
Swap around orig day & month: you use a different date system.
|
|
|
|
|
Error 17 Name 'board' is not declared. \Form1.vb 504 29
If EncryptU(board.GetMotherBoardID.Trim.ToString) = CompID Then
Error 24 Name 'board' is not declared. \register.vb 252 16
Function getMotherboardId()
Return board.GetMotherBoardID.Trim.ToString
End Function
Anyone know how to fix this?
Thanks for any help!
|
|
|
|
|
Ensure none of your resources are missing, the functions are provided by a library, it might not have imported correctly. If not, re-add it.
Tyler Menezes
www.TylerM.info
|
|
|
|
|
hi,
i am a beginner,i have a user registration form in which i used validation controls.it is working fine but without completely filling the form when i submit ,it should go to the error(Validation error) how to do it i dont have any idea please help.........
modified on Tuesday, April 8, 2008 6:01 AM
|
|
|
|
|
Hi look nice i just try it and i found the way around it easy way. Its just change system date a you done. Thats not realy safe is it? But otherway its nice designe. My advice is you should fix this bug !!! Example : may you can try make reg key in registry as date when this program was installed
Thank you for that anyway ...
|
|
|
|
|
I used the code successfully in VS2005 with .NET 2.0. Now that I've moved on to .NET 3.5 and VS 2008, I'm getting numerous errors. Is there an updated version for .NET 3.5? I've handled most of the errors, but can't seem to get around this one in Encryption.vb. _crypto.Key = _key.Bytes ="Specified key is not a valid size for this algorithm."
Private Sub ValidateKeyAndIv(ByVal isEncrypting As Boolean)
If _key.IsEmpty Then
If isEncrypting Then
_key = RandomKey()
Else
Throw New CryptographicException("No key was provided for the decryption operation!")
End If
End If
If _iv.IsEmpty Then
If isEncrypting Then
_iv = RandomInitializationVector()
Else
Throw New CryptographicException("No initialization vector was provided for the decryption operation!")
End If
End If
_crypto.Key = _key.Bytes
_crypto.IV = _iv.Bytes
End Sub
System.Security.Cryptography.CryptographicException was unhandled
Message="Specified key is not a valid size for this algorithm."
Source="mscorlib"
Any help will be appreciated.
|
|
|
|
|
I'm having the same problem.
Can't get it to work with VB.NET 2008 and FW 3.5.
Any help would be appreciated please.
Rens
|
|
|
|
|
I'll update it soon, I have other projects which need to be completed first. If anyone else has a solution in the mean time, feel free to post it.
Tyler Menezes
www.TylerM.info
|
|
|
|
|
Hi.
I haven't looked much at the source code yet, but as I did, I didn't find a way to reset the timer.
When I first launched the example, it said I had 30 days left. I then clicked: Continue Unregistered, and the popup box with the "Were this not a demonstration, blah blah...", and I clicked OK... Then I launched it again, and this time I did not have 30 days, left, but three hundred and something, while it told me the system clock had been changed -.-
Is this a bug? (I'm on Vista)
MulleDK13 (http://www.splintercell3.treesoft.dk)
|
|
|
|
|
Wait.. I get it...
Public RegSubKeyName As String = "HardToGuessNameHere1"
But still... it's only working the first time..
"You have 30 days remaining"
and next time
"You have 323 days remaining", and the "system clock changed" warning -.-
OH! Might have something to do with the "UK dates" reply... Guess it's the same as Denmark... I'll try
YEP! That fixed it
So, what if someone downloads my program, and doesn't live in Europe? Then they have a single run, before the trial period expires -.-
MulleDK13 (http://www.splintercell3.treesoft.dk)
modified on Tuesday, February 12, 2008 12:54 PM
|
|
|
|
|
Hi,
I'm having trouble with just getting the program to run. I've changed dates to the UK format.
Now i'm getting the warning that I have changed the system date.
I am a retired pensioner with an interest in VB, I am currently using Vista and Visual Studio 2008
I could really use a great deal of help in how to set up the program, what changes need to be changed and what to do now that the web site for registering the program no longer seems to exist.
I'm asking a lot of you I know, but I do hope you can help as it appears that Tyler is tied up with two or three projects at the moment.
Yours fraternaly
Ken
|
|
|
|
|
This program is really useful, thanks, but there is a problem when used on computers in the UK. I thought I'd post a fix for anyone with the same problem. The problem is that the program will fail for computers using the UK date system (DD/MM/YYYY rather than MM/DD/YYYY) but this can be easily fixed with a couple of minor changes:
The following code is in the Form1_Load class:
Dim OldDate As String = OldMonth & "/" & OldDay & "/" & OldYear
If DateTime.Now.Compare(DateTime.Now, OldDate) < 0 Then
unregbutton.Enabled = False
InTrial = False
oReg = Registry.LocalMachine.OpenSubKey("Software", True)
oReg = oReg.CreateSubKey(RegSubKeyName)
oReg.SetValue("Enable", "1")
oReg.Close()
End If
Must be changed to:
Dim OldDate As String = OldDay & "/" & OldMonth & "/" & OldYear
If DateTime.Now.Compare(DateTime.Now, OldDate) < 0 Then
unregbutton.Enabled = False
InTrial = False
oReg = Registry.LocalMachine.OpenSubKey("Software", True)
oReg = oReg.CreateSubKey(RegSubKeyName)
oReg.SetValue("Enable", "1")
oReg.Close()
End If
Will also need to change the function DiffDate:
Public Function DiffDate(ByVal OrigDay As String, ByVal OrigMonth As String, ByVal OrigYear As String)
Try
Dim D1 = OrigMonth & "/" & OrigDay & "/" & OrigYear
Return DateDiff(DateInterval.Day, D1, DateTime.Now)
Catch
Return 0
End Try
End Function
to
Public Function DiffDate(ByVal OrigDay As String, ByVal OrigMonth As String, ByVal OrigYear As String)
Try
Dim D1 = OrigDay & "/" & OrigMonth & "/" & OrigYear
Return DateDiff(DateInterval.Day, D1, DateTime.Now)
Catch
Return 0
End Try
End Function
There may be other instances I haven't found yet which also need to be changed but I think thats it. Unfortunately this will only work for UK system environments now, I'm sure it would be possible to change this to be more generic by checking the local system to see which format should be used, but I can't be bothered.
|
|
|
|
|
Sorry, just noticed what I posted's been asked already in a different post, should have checked more thoroughly before posting!
|
|
|
|
|
I tried to change platform to .Net Compact plateform but some functions are not supported.
Is it possible to change to mobile platform?
|
|
|
|
|
In order to port to a compact platform you'd probably be able to reuse some of the code base, but would need to rewrite some functions. The GUI would also need to be redone. Unfortunately I have no experience with mobile device applications, so I'm not sure what help I can be. If you tell me what functions are unsupported I may be able to rewrite code to avoid them.
Tyler Menezes
www.TylerM.info
|
|
|
|
|
Let me start by saying this is a great program. I installed it in my app, built the app, installed it and it was working fine. When I tried to update the app(my application) if found that it didn't want to update. I deleted the installed version and tried to reinstall and received a message that their was an error. The details explained that the HardwareMotherboardID.dll already existed which is what is causeing the error. I've tried leaving this out of the build, with no luck...does anyone have any suggestions? FYI below is the error I'm getting...
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\MyApp\MyApp.application resulted in exception. Following failure messages were detected:
+ Downloading file:///C:/MyApp/MyApp_1_0_0_6/HardwareMotherboardID.dll.deploy did not succeed.
+ The file 'C:\Documents and Settings\me\Local Settings\Temp\Deployment\RW8HN9KH.0AV\62D1L2EE.574\HardwareMotherboardID.dll' already exists.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [7/10/2007 9:37:20 AM] : Activation of C:\MyApp\MyApp.application has started.
* [7/10/2007 9:37:20 AM] : Processing of deployment manifest has successfully completed.
* [7/10/2007 9:37:20 AM] : Installation of the application has started.
* [7/10/2007 9:37:21 AM] : Processing of application manifest has successfully completed.
* [7/10/2007 9:37:23 AM] : Request of trust and detection of platform is complete.
ERROR DETAILS
Following errors were detected during this operation.
* [7/10/2007 9:37:23 AM] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
- Downloading file:///C:/MyApp/MyApp_1_0_0_6/HardwareMotherboardID.dll.deploy did not succeed.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
--- Inner Exception ---
System.IO.IOException
- The file 'C:\Documents and Settings\me\Local Settings\Temp\Deployment\RW8HN9KH.0AV\62D1L2EE.574\HardwareMotherboardID.dll' already exists.
- Source: mscorlib
- Stack trace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
Thanks!
|
|
|
|
|
A little more info (I do not understand .dll's at all so this is a learning experience) If I delete the HardwareMotherboardID.dll from my project it installs fine...Do I have to make two download sites one for a new users and one for users just updating or am I handleing the .dll file wrong?
|
|
|
|
|