Home > Index > LaunchPad technical details
SOFTWARE
LaunchPad technical details
 

For LaunchPad's main page, click here.

Data files

LaunchPad creates two data files in %appdata%\LaunchPad:

LaunchPad.fig.xml contains info about toons and accounts.

LauchPad.settings.txt contains info about user preferences.

The program's "Create backup file" menu item makes a copy of the xml file. The files are readable by humans but if you modify them in an editor, they may not work.

Installation directory

LaunchPad gets installed by Microsoft's ClickOnce deployment system. ClickOnce puts LaunchPad's executable files in an obscure folder of its own choosing. ClickOnce automatically updates these files whenever a new version is published, so there's no need for users to know the installation directory. (I wrote the program and even I don't know where the files are installed on my computers -- it really doesn't matter.)

Encryption

When a user stores a password in the program with the "Add toon" or "Toon properties" windows, the password is immediately encrypted with the operating system's CryptProtectData function and base-64 encoded. Passwords are stored only in this encrypted and encoded form. When a toon is launched, at the last possible instant, the program creates a decoded and decrypted copy of the password for game.dll.

Interprocess communication

Other applications can use LaunchPad as a driver to launch toons. For each toon, the other program must send a WM_COPYDATA message to LaunchPad's main window with the following Unicode command line:

      LaunchPad launch <ToonName> <ToonRealm> <ToonServer>

Please note that LaunchPad always runs with elevated privileges. In order for another program to send messages to LaunchPad, it must also have elevated privileges, otherwise the operating system will silently fail to deliver the messages.

To make it easier for other programs to identify LaunchPad's main window, that window will return TRUE when it receives a registered message that is obtained from the operating system with the following identifier:

     {8B9A14D3-8FB5-461A-A25C-87B63ACA2ED4}

 

This page was last revised on September 28, 2010
Copyright 2010 Robbie of Gaheris