I have written a program that I released by various freeware/shareware sites. It has been downloaded 10,000+ times and I have received lots of positive feedback. I am now making major improvements based on end user requests and am going to offer two versions of the program. The free version will have options A, B and C along with a few minor bug fixes. The Paid Version will be features A, B, C and D, E, F, G, H with the same bug fixes. Features D, E, F, G and H are the most requested end user features and were the most cumbersome to code. Features A, B, and C were features that were < 10 lines of code to implement. Because of Features D, E, F, G and H I basically re-started from scratch and re-coded cleaner and more efficiently. Even then I added over 1,000 lines of code.
What I want to do is require payment for the enhanced version with all the features. The program without D, E, F, G and H is great and should suffice for 80% of the people. Features D, E, F, G and H will make the program that more usable and flexible for the demanding 20% and probably half of the 80% will want the "enahnced"/"full"/"paid" version just because it makes the program that much more, provided of course the cost is relatively cheap.
I have looked into various software licensing "plug-ins" and "dlls" but am not ready to pay $400+ plus monthly fees for this.
Instead I am going to license the software to be used by a buyer ( and users of his computers) on up to 3 computers. What I am going to do is set up a simple serial number licensing scheme using the end users MAC address. Allow the program to be installed up to 3 times with 3 different MAC addresses. I am planning on selling the "enhanced"/"full" version for a nominal amount, something like $8.00, $9.00 or $10.00. Additional installations will cost some minimal amount like $2.00 or $3.00.
Anyway, when the program is purchased the end user will be given a "License Key" and when they install the program and enter the License Key the system will update a remote database with the License Key and MAC Address. Every 10-15 runs of the program or once a month the system will re-verify the License Key from the remote database. If the end user has 3 active installs, they will be required to un-install or buy additional licensing slots if they want additional installations.
Where I am at right now is that I need to verify that the following code will work on multiple versions of Windows. I am using IPCONFIG which should be on every computer running windows. It does not require administrative rights to run (at least I do not believe it does) and all users should not have problems with this code being called in my program.
Code: Select all
Test=RunProgram("ipconfig", "/all","",#PB_Program_Hide | #PB_Program_Open | #PB_Program_Read)
found = 0
If Test
While ProgramRunning(Test)
If AvailableProgramOutput(Test)
Output$=ReadProgramString(Test)
If FindString(Output$,"Ethernet adapter Local Area Connection",0) And found=0
found=1
EndIf
If found=1
If FindString(Output$,"Physical Address",0)
start=FindString(Output$,":",0)+1
MacAddress$=Mid(Output$,start,18)
found=2
EndIf
EndIf
EndIf
Wend
CloseProgram(Test) ; Close the connection to the program
EndIf
messagetxt$="MAC Address is "+MacAddress$
MessageRequester("Output", messagetxt$)
I appreciate all the assistance and will release more details on how I implement this simplistic software licensing scheme.
Slyvnr