Click here to Skip to main content
15,353,818 members
Articles / Programming Languages / C#
Posted 2 Apr 2007


11 bookmarked

Wannakey – Redefining software distribution

2 Apr 20074 min read
A new way of selling software has emerged. Making money trying to sell small size programs is not easy. Let’s change that! We are currently guaranteeing 150$ revenue for the first 300 developers who upload their program and starts using the system described in this article.

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

This is a showcase review for our sponsors at The Code Project. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.

Introduction – The Wannakey Concept

Image 1

Wannakey ( redefines software distribution and creates a new place (a Marketspace) where developers can sell their small size software. The concept is simple. Developers deliver the program; distributors deliver the customers, and Wannakey organize the Marketspace, controls the payment and the license management.

What we are reacting to is, the way developers of small size software today are selling their programs. We Instead of these we want to make it possible for developers to sell their programs on regular websites. We do it by creating the Wannakey Marketspace that helps developers offer their programs to websites that have the customers they are interested in reaching. Picture a warehouse, where you enter your software. The website then goes into the warehouse and pick your software for sale on their site.

The tools

Wannakey is a Marketspace, first and foremost; this means that the core of Wannakey is a database with programs for sale and stores registered. As a developer you upload your programs and allow websites to put them for sale at their site.

Wannakey is also a License Management system that helps the developer secure the program and control their Digital rights. Wannakey ensures that the program will only be used on computers that have been registered through payment or trial registration. It is possible to use straight forward sale, continuous payment (e.g. Monthly payment), trial periods and pay-per-use.

Finally, Wannakey is a payment system that help the developer receive money for his programs. Our PayPal supported payment system controls customer's payment and enables payment to happen with credit cards, bank transfers or PayPals own system. It also automatically controls the revenue distribution between developer and distributor. The developer decides the individual shop commission and the money is distributed according to the Revenue key.

Image 2

Implementation of Wannakey

Enough about the concept, let's move into the details. Let's start with what you as a developer have to do. First you create a new application, then you register at and download our System Development Kit.

The SDK has the following content

  • DFWKNETPC.dll – the actual Wannakey implementation
  • ApplicationKey.txt – the unique Key for each application
  • Readme.pdf – a help text

Then you load the application you wish to sell into visual Studio (Wannakey currently only work on .Net applications), and import the DFWKNETPC.DLL file to the application. Import the namespace Wannakey.Net.Pc and System.Drawing in your source code

Image 3

  • System drawing is used when specifying your application picture
  • Wannakey.Net.Pc is used when calling Wannakey specific functionality

Then add an application picture to a resource file in your application – you will use this picture when specifying the look of the Wannakey license dialog. Following this you instantiate the Wannakey objects and define its properties in your primary method.

namespace WannakeyApplication1
    static class Program
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
          // 1 - Create a Wannakey Info object to define your application info.
          WannakeyInfo myWannakeyInfo = new WannakeyInfo();

          // 2 - Define the Application name.
          myWannakeyInfo.ApplicationName = "Wannakey Demonstration";

          // 3 - Define your unique ApplicationKey - located in 
          // the Wannakey SDK.
          // --- Remember to replace this key with your own Application Key.
          myWannakeyInfo.ApplicationKey = "XXXXXXXXXXXXXXXX";

          // 4 - Define the function you want the Wannakey implementation 
          //     to perform.
          myWannakeyInfo.Function = 

          // 5 - Define the picture to be shown on the Wannakey license dialog.
          myWannakeyInfo.Picture = (

          // 6 - Create a Wannakey object with your application info.
          Wannakey_External myWannakey = new Wannakey_External(myWannakeyInfo);

Create the behaviour for each Wannakey license status

          // 7 - Create behavior for each Wannakey license status.
          if (myWannakey.Status.Equals(Wannakey_External.StatusCode.None))
              // Action to perform if no Wannakey is found
          else if (myWannakey.Status.Equals(
              // Action to perform if the Wannakey proves to be expired
          else if (myWannakey.Status.Equals(
              // Action to perform if the Wannakey proves to be invalid
          else if (
              // Action to perform if the Wannakey proves to be valid
              MessageBox.Show("Hello Wannakey World!");
              Application.Run(new Form1());

Now Wannakey is implemented and you can perform status checks anywhere in your application, and perform any action you wish.

How does it work?

Lets then turn to the functionality of Wannakey. If the Wannakey license proves to be None, Invalid or expired when your application starts – the Wannakey dialog will make sure no unauthorized usage of your application takes place.

Image 4

The Wannakey agent integrated in the application is activated as soon as the application is activated. This is visible through the license dialog which automatically gives the user the possibility to either buy or try the product.

Image 5

When the "trial" period for the product expires the Wannakey agent lets the user know and gives the user an option to finally buy the product for continued usage.

Image 6

Image 7

Wannakey is currently using PayPal as payment gateway for all applications. When a user wants to buy an application like shown above – the Wannakey dialog transfers the user to the PayPal payment gateway shown below.

Image 8

Customers can both use a Paypal account a credit card or bank account to buy Wannakey secured products. When using credit card or bank account the steps follow standard procedures.

Minor implementation differences:

Implementing Wannakey in an Internet Explorer Plug-in:

  1. All DLL files from the Wannakey SDK must be registered in the "global assembly cache" on the computer your plug-in is distributed to. Therefore make sure your install kits perform these registration actions.
  2. It is a good idea to create the Wannakey object as a private object in the main class, to be able to call it deeper within the plug-in.
public class WannakeyDemonstration : BandObject
    private Wannakey_External wannakey;

The Guaranteed sale campaign

Wannakey is a new concept and we are therefore only just getting started. So right now we only have very few programs and just as few distributors. We need to get the ball rolling, so all parties can start making money.

To do this we are hoping you will put your program up for sale at Wannakey, and to further the incentive we are currently guaranteeing 150 $ revenue for 300 developers who upload their program and is selected by our team. Read more at or register at


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Jeppe Mortensen
United States United States
No Biography provided

Comments and Discussions

QuestionIs wannakey fooling? Pin
Giorgi Dalakishvili27-May-07 21:58
mentorGiorgi Dalakishvili27-May-07 21:58 
AnswerRe: Is wannakey fooling? Pin
TheNick28-May-07 3:34
MemberTheNick28-May-07 3:34 
GeneralRe: Is wannakey fooling? Pin
Giorgi Dalakishvili28-May-07 3:38
mentorGiorgi Dalakishvili28-May-07 3:38 
General25% VAT Pin
Colin Angus Mackay24-May-07 0:01
MemberColin Angus Mackay24-May-07 0:01 
GeneralRe: 25% VAT Pin
Giorgi Dalakishvili24-May-07 0:44
mentorGiorgi Dalakishvili24-May-07 0:44 
AnswerRe: 25% VAT Pin
TheNick27-May-07 21:50
MemberTheNick27-May-07 21:50 
GeneralCrack one and crack all policy Pin
Anup Shinde23-Apr-07 2:23
MemberAnup Shinde23-Apr-07 2:23 
GeneralRe: Crack one and crack all policy Pin
jleni11-May-07 4:46
Memberjleni11-May-07 4:46 
AnswerRe: Crack one and crack all policy Pin
TheNick22-May-07 1:27
MemberTheNick22-May-07 1:27 
Question.NET CF Pin
Ophir12-Apr-07 11:15
MemberOphir12-Apr-07 11:15 
AnswerRe: .NET CF Pin
Rainier W17-Apr-07 2:04
MemberRainier W17-Apr-07 2:04 
AnswerRe: .NET CF Pin
baochau170519-Apr-07 16:33
Memberbaochau170519-Apr-07 16:33 
GeneralYour web page is a mess Pin
TomM9-Apr-07 13:12
MemberTomM9-Apr-07 13:12 
GeneralRe: Your web page is a mess Pin
Rainier W10-Apr-07 20:43
MemberRainier W10-Apr-07 20:43 
GeneralRe: Your web page is a mess Pin
ViRiX14-Apr-07 10:48
MemberViRiX14-Apr-07 10:48 
GeneralRe: Your web page is a mess Pin
Rainier W18-Apr-07 23:29
MemberRainier W18-Apr-07 23:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.