I've been trying to think my way around the problem of software piracy and I've finally decided not to bother. I really can't outwit people who are infinitely more intelligent than me.
My program works with simple registration keys but it wouldn't take a half-decent hacker five minutes to work out how they work and how to generate their own. That annoys me but not so much. I have a fairly clear attitude towards piracy. I hope people will pay me for my work if they can afford to and if they find the software useful. If they can't afford to but still find the software useful, then I'm tempted to give them an option of writing to me to ask for a free key. If somebody is really that hard up but wants my program, then perhaps I'll give it to them for nothing. They need only say 'please' and 'thank you' and promise to pay me when they can afford to. That seems reasonable and how I'd like all software companies to work.
The remainder will be people who can afford to pay me but simply don't want to pay me or don't think the program it worth the money I'm asking. These are people who would *never* pay me so if they want to use some hackers version of my code or a serial number that will eventually end up floating around the web, then there's nothing I can do about it.
Beyond that, what else I can do?
It is, of course, highly unlikely that people will want the bloody thing anyway. It's such a simple bit of software that I'm even ashamed of asking for money...
Hmm. Too much negativity but it's been a long day. I'd hoped to have a launch at some point but the simple problem I had turned out to be a major problem. I'd used a database in my code. Probably not the ideal solution but, when I began these two projects, I never expected to have workable products at the end. Learning to program what's called an SQL database was wise since it taught me how to do it. However, when it came to distributing my code to other machines, those machines weren't running software that could handle the database. Either I'd have to force my users to download some free third party software or I'd have to rewrite some large parts of my code. For my first project, I've decided to rewrite the code. It now uses arrays and is greatly improved because of that. It now goes like greased lightning. Stupid of me not to have done it this way in the first place but there's something so romantic about SQL databases or, at least, romantic to me since I used to program them years ago.
The result of today's effort is that my software now installs fine on other machines. The only remaining 'problem' is that users will have to download Microsoft's latest version of the .NET framework, which is a fancy way of saying that my code is made from pieces of other code that Microsoft have written and in order for my code to work, the computer has to have the Microsoft code installed. It's not a huge problem but a little irksome. Software made using Microsoft's .NET framework is also notoriously easy to reverse engineer. It's why I'm not putting too much effort into encrypting my registration codes.
I really need to finish this tomorrow and get on with other things.