Page 1 of 1

Software Activation / Deactivation

PostPosted: Sat May 20, 2017 3:25 am
by ajhunt
Hi all, may I ask if anyone has any suggestions for a method to activate and deactivate an application written with NB. I'm wanting a method which uses the buyers email address to allow activations and deactivations on lets say 3 systems. Each time they have to activate the software by being online and then able to use the software without being online. I have thought of manually uploading a tiny text file to a server named as there email@address.txt and contains a simple counter. When they wish to authorise, they enter their email address, that file gets downloaded and read and adjusts the count as needed and then quickly uploads it again, and then deletes the local download. Somewhere in between I need to store that the software has been activated for that system and written to registry or somewhere,so when running the software does not need to be online. If deactivating, then the same but adjust the counter up so available for another system. Any suggestions welcome or any other known working method welcome too. Best regards and TIA.

Re: Software Activation / Deactivation

PostPosted: Sat May 20, 2017 10:42 pm
by ajhunt
Hi Guys, solved, write an encrypted entry to registry and unencrypt to read.

Re: Software Activation / Deactivation

PostPosted: Sun May 21, 2017 8:47 am
by virger
Muy bien, pero pregunto.
1) Mi aplicacion corre en PC1, en esta se guarda "encrypted entry to registry" y si es instalada en otra Pc?
2) Que pasa al instalar esa misma App en PC2 ?
3) Como se controla si "desinstalo" mi App de PC1 y trato de pasarla a PC3?
4) Ya instalada la App en PC1 y corriendo, podre en PC2 hacer otra instalacion de esa misma App ?
5) Como se comprueba que estoy usando la App en PC1 o en PC2 ?

Very well, but I ask.
1) My application runs on PC1, this is saved "encrypted entry to registry" and if it is installed on another PC?
2) What happens when installing that same App on PC2?
3) How do I control if I "uninstalled" my PC1 App and tried to pass it to PC3?
4) Already installed the App in PC1 and running, rotten in PC2 make another installation of that same App?
5) How do I check if I am using the App on PC1 or PC2?

Re: Software Activation / Deactivation

PostPosted: Sun May 21, 2017 11:17 pm
by ajhunt
Hi Virger, to answer your question on moving from 1 PC to another PC. When the software is purchased I have their email address. I create a text file on server host with that email address and with contents as "2:24344813:2" which is Activations:Serial:Max. When buyer presses Activate they have to enter their email address and serial number andthe file gets downloaded and read into variables and deleted. The serial number checked and sums are done to see if any activations left, if no then tell them no, if yes, adjust the Activations, create registry entry, and write the text file again Activations:Serial:Max and upload back to server host. In reverse for when they Deactivate PC1, download, adjust Activations (not past Max) and upload back to server host. On startup of software check if activated by looking at register. The registry key contains encrypted info on PC1 system, if all ok then continue, else incorrect and info them then exit. On Deactivation register key is deleted. Hope that helps everyone interested in this option. Obviously system has to be online to activate and deactivate, but otherwise no need. Happy NeoBooking everyone. :)

Re: Software Activation / Deactivation

PostPosted: Mon May 29, 2017 4:04 am
by ajhunt
Hi all, I came across this function which might help others wanting PC Information on current system so thought good to post:

{NeoBook Function}
Param=[%1]|Variable|Get info about Cpu(s) and graphic card(s)
' Get info about Windows,Cpu(s) and graphic card(s)

Dim txt, ram, ramMBGB, videoramMBGB, videoram

On Error Resume Next
' ******************************** Windows ***************************************************************
' List Operating System and Service Pack Information
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOSes
txt=txt & objOS.Caption & vbCrLf 'Name
txt=txt & "Service Pack: " & objOS.ServicePackMajorVersion & "." & objOS.ServicePackMinorVersion & vbCrLf& vbCrLf

' ******************************** CPU ***************************************************************
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)

For Each objItem in colItems
txt=txt & "CPU Name: " & objItem.Name & vbCrLf
txt=txt & "Number Of Cores: " & objItem.NumberOfCores & vbCrLf
txt=txt & "Number Of Logical Processors: " & objItem.NumberOfLogicalProcessors & vbCrLf& vbCrLf

'************************************** VIDEO ***********************************************************
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery _
("Select * from Win32_VideoController")

For Each objItem in colItems
' txt=txt & "Description: " & objItem.Description & vbCrLf
txt=txt & "Graphic Card Name: " & objItem.Name & vbCrLf

videoram = objItem.AdapterRAM
videoram = (videoram / 1024)/1024
if videoram > 1000 then
videoram = videoram /1024
videoramMBGB = " GB"
videoramMBGB = " MB"
end if
txt = txt & "VideoRam: " & videoram & videoramMBGB & vbCrLf

txt=txt & "Current Video Mode: " & objItem.VideoModeDescription & vbCrLf& vbCrLf

'************************************** List Total RAM **************************************************************
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colCSItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")
For Each objCSItem In colCSItems
ram = objCSItem.TotalPhysicalMemory
ram = (Ram / 1024)/1024

if ram > 1000 then
ram = ram /1024
ramMBGB = " GB"
ramMBGB = " MB"
end if

txt=txt & "Total Memory: " & Round(ram,2) & ramMBGB& vbCrLf& vbCrLf

'************************************** END: List Total RAM **************************************************************

publication.nbSetVar "[%1]", txt

' WScript.Echo (txt)