1

I was wondering...

I have a program, and I want to charge money for it.

it runs on Windows, and is written mostly in VB and Batch-files...

how can I force the user to buy a product key for it, and activate it to use the Paid Version?

Thanks in advance!

~ @Cascading-style

cascading-style
  • 488
  • 9
  • 23
  • 1
    By using languages that compile. You're asking how to force the user to activate a program when the source code is freely available (as far as I can tell, there is zero research on this subject because it's so darn counterintuitive). Best I can come up with of the top of my head is to brute-force a bunch of strings with checksum collisions and use those strings as product keys. – SomethingDark Oct 17 '16 at 03:47
  • 1
    If the user dosn't know how to read the batch file it can be done by let him execute your program for 3 times otherwise you make it self auto-delete ;) – Hackoo Oct 17 '16 at 07:58
  • I can't make it into a Store app because I want it to run on legacy machines too. I am developing it on Windows 10 btw. so, yeah, not an option. – cascading-style Oct 17 '16 at 14:26
  • Maybe I could use LZMA compression on the full version's files, and encrypt it with the Product Key? would that work? – cascading-style Oct 17 '16 at 17:39
  • 1
    @cascading-style: *The* product key? As in one key to rule them all? Unless I misunderstand, this isn't going to provide much protection, probably no more than a few minutes after release. Anyway, unless you can easily provide some sort of protection, you should really try to concentrate on producing convincing features rather than fighting developers for which you are no match. – IInspectable Oct 17 '16 at 19:25
  • can i use `wget` on windows to send a request to my server for the pro version? – cascading-style Oct 18 '16 at 02:40
  • Anybody? I'm kinda desperate... – cascading-style Oct 23 '16 at 22:12

1 Answers1

1

This just a little example showing you that you can limit the number of execution of your program , so if the maximum of number of execution is reached the program will Auto delete by him self

@echo off
Setlocal enabledelayedexpansion
Title Count the number of times my BATCH file is run
Mode Con Cols=70 lines=7 & color 0E
Set /a MaxExecution=3
set /a count=1
set "FileCount=%tmp%\%~n0.dll"
If Not exist "%FileCount%" (
    echo !count! > "%FileCount%"
) else (
    For /F "delims= " %%a in ('Type "%FileCount%"') Do (
        set /a count=!count! + %%a
        echo !count! > "%FileCount%"
    )
)
echo.
echo             This Program is running for "!count!" time(s)
Call :SelfDelete
pause>nul & Exit /b
::**************************************************************
:SelfDelete
echo.
If !count! GTR !MaxExecution! (
    Color 0C
    echo The maximum execution of this "%~nx0" is set to "!MaxExecution!"
    echo and it is reached & Timeout /T 5 /Nobreak>nul & Del %~f0
    ) else (
    echo         The counting is "!count!" and the max is set to "!MaxExecution!"
)
Goto :EOF
::**************************************************************
Hackoo
  • 18,337
  • 3
  • 40
  • 70