Been a long time; I've got some questions...

Just starting out? Need help? Post your questions and find answers here.
User avatar
griz
Enthusiast
Enthusiast
Posts: 167
Joined: Sun Jun 29, 2003 7:32 pm
Location: Canada

Been a long time; I've got some questions...

Post by griz »

Hi guys,

It's been quite a while since I've lurked around here. :oops: I've bounced around all sorts of other languages and development environments. I have missed the efficiency, speed, convenience and compactness of Purebasic as well as the community. I am about to release a commercial application using Purebasic. It's just a simple GUI app that works with text and csv files. I have a few questions.

1) I've never used Windows Vista or Windows 7. I primarily use Ubuntu and Windows XP. Do I need to make any special considerations in my code for my application to be compatible with these newer offerings from Microsoft?

2) Software protection. What do you recommend for a cross-platform solution? I am thinking along the lines of Internet-based activation. What tools or coding techniques do you use to protect your software from piracy? I am considering no copy protection at all. Am I nuts?

3) How is Purebasic doing these days? I see a lot of familiar faces around here. I like what I see in terms of updates to the language over the years.

Regards
srod
PureBasic Expert
PureBasic Expert
Posts: 10589
Joined: Wed Oct 29, 2003 4:35 pm
Location: Beyond the pale...

Re: Been a long time; I've got some questions...

Post by srod »

With respect Griz, you can answer these questions simply by browsing the forums; especially the last question. :)

For Windows Vista/7, basic GUI apps will generally be fine. It's only when you start foraging deeper that you might encounter a couple of issues but these are usually easy to fix. Best way is simply to have someone run your app under one of these OSes.

Copy protection? What's the point. If your product is deemed good enough to be cracked, then someone will crack it regardless. I simply release a trial version with certain functions physically removed. No amount of cracking will resinstate those! :)
I may look like a mule, but I'm not a complete ass.
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Re: Been a long time; I've got some questions...

Post by Trond »

2) I suggest a demo with some functionality not present in the executable. Then customers log in (as with purebasic) to download the full version. You then give each customer a unique, watermarked executable (include things such as user id, current date, current ip address). Be sure to alert your customers that they are not allowed to distribute the program, and that the files are watermarked with personally identifiable information.
c4s
Addict
Addict
Posts: 1981
Joined: Thu Nov 01, 2007 5:37 pm
Location: Germany

Re: Been a long time; I've got some questions...

Post by c4s »

@Trond
...But this only works when you have just a very few customers. And what is when you are on vacation or something similar and your customer is waiting for you to send him the customized compilation?
I agree that it's the best concept in theory but in reality not very useful for use developers.
If any of you native English speakers have any suggestions for the above text, please let me know (via PM). Thanks!
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Re: Been a long time; I've got some questions...

Post by Trond »

c4s wrote:@Trond
...But this only works when you have just a very few customers. And what is when you are on vacation or something similar and your customer is waiting for you to send him the customized compilation?
I agree that it's the best concept in theory but in reality not very useful for use developers.
I of course meant that this should be automated.
freak
PureBasic Team
PureBasic Team
Posts: 5940
Joined: Fri Apr 25, 2003 5:21 pm
Location: Germany

Re: Been a long time; I've got some questions...

Post by freak »

griz wrote:1) I've never used Windows Vista or Windows 7. I primarily use Ubuntu and Windows XP. Do I need to make any special considerations in my code for my application to be compatible with these newer offerings from Microsoft?
If it runs on XP then it should run on these OS too. If your program tries to access files or registry entries without admin rights then the OS will redirect them somewhere else (this is called virtualisation). This way it still works, but it may confuse the user if he tries to look for the file on the system. It is better to disable this redirection and not try to write to these locations (see below)

Playing nice with the access restrictions on Vista/7 is not too hard:
  • If you need access to admin-only locations, enable the "Request Administrator mode for Windows Vista" in the compiler options and your program will always run as administrator (and require a password). You have then full access to everything.
  • If you don't need such access, check "Request User mode for Windows Vista". This disables the virtualisation. It also stops Windows from trying to guess wether your program is a setup or not, which it tries to figure out from the name and version info otherwise.
  • In User mode, do not write to your own program's folder, or system folders, as you probably will not have the proper rights for it. Instead, store any needed data in the appropriate application data folder (see http://www.purebasic.fr/english/viewtop ... 13&t=41283)
  • If you store things in the registry, only use HKEY_CURRENT_USER only
This is pretty much it. If you want to make sure that your program fully complies with UAC, you can run the "Standard User Analyzer" tool included in the "Microsoft Application Compatibility Toolkit". It will run your program and tell you about possible access problems if your program is run on Vista or Windows 7 in a limited user account. Especially if you sell your software, i recommend using this tool.

It is a free download and also runs on XP SP3 (requires .NET 3.5):
http://www.microsoft.com/downloads/deta ... laylang=en

For detailed information on how to be UAC compatible, i recommend reading this:
http://msdn.microsoft.com/en-us/library/bb530410.aspx
quidquid Latine dictum sit altum videtur
User avatar
griz
Enthusiast
Enthusiast
Posts: 167
Joined: Sun Jun 29, 2003 7:32 pm
Location: Canada

Re: Been a long time; I've got some questions...

Post by griz »

Thanks for all the replies! Nice to see the activity still present here after all these years.

Copy Protection versus No Copy Protection

I would be interested to know which is better from a business standpoint. Selling software without copy protection seems to be beneficial for the customer as well as the developer as long as it doesn't adversely effect sales. There's even this argument out there that piracy is good for the software industry as it is somewhat of a promotional engine in itself.

Having said that, my market (the Internet marketing realm) is full of copy protected software. I'm swimming with sharks basically. I don't expect to sell more than a few hundred copies to a small community. I would love to drop copy protection altogether if possible, but don't want to significantly effect the ability for my software to earn. Does anyone have any recommendations or experiences they'd like to share?

Windows Vista/7 Considerations

Thanks freak for all the great information; much appreciated.

I would like my software to be portable. I would prefer no formal installation. Just double click on the executable and go. However, I would like to store a preferences file alongside the executable. This way all user preferences go along with the executable (despite where it resides). It would be nice to transfer the preferences file to Linux and vice versa; if the end user wished to do so. Any tips would be most welcome.
User avatar
Vera
Addict
Addict
Posts: 858
Joined: Tue Aug 11, 2009 1:56 pm
Location: Essen (Germany)

Re: Been a long time; I've got some questions...

Post by Vera »

Hello griz,

makes me glad to hear someone else favors a real portability as well :)
As far as I know this is still possible on WIN Vista/7 everywhere on the device except for the 'Program Files' and system folders as freak pointed out.

As you don't offer any 'standard installation' you'd only need to make sure the user knows not to install (place) it in any of these locations.

greetings ~ Vera
c4s
Addict
Addict
Posts: 1981
Joined: Thu Nov 01, 2007 5:37 pm
Location: Germany

Re: Been a long time; I've got some questions...

Post by c4s »

About the copy protection:
I also offered my software without copy protection but than a customer asked me right after purchasing something like: "I received the executable but where is the serial?". I said to him that he already has the fully functional software.
Well, now I added a basic serial protection system because customers seem to expect and need it...

To your portable stuff:
I think it's a really good approach to make an application portable but as you have read from freak's post saving settings in the same directory simply doesn't work anymore. I for example save the preferences in the appdata directory and if a "portable" command-line parameter is used (as stated in my readme) the files will be saved in the program directory.
If any of you native English speakers have any suggestions for the above text, please let me know (via PM). Thanks!
User avatar
Rescator
Addict
Addict
Posts: 1769
Joined: Sat Feb 19, 2005 5:05 pm
Location: Norway

Re: Been a long time; I've got some questions...

Post by Rescator »

Yeah, about protection. A User friendly way that also makes casual copying less likely is a serial tied to the account of the user. (avoid pre-generated serials, generate the serial upon purchase and tie it to the user)
then request the serial during support requests, updates/patches and extra content.
And tie the product to the user rather than the hardware.
Post Reply