Ok, there are a few paths you could take. I recommend choice A because it's by-far the easiest.
A. Custom license features
Create a custom license feature, let's call it "Company specific", make it optional. Then, when you create a product key, set the "Company specific" value to "X" (for company X).
Now, in your code, you can check if this feature has been set and what its value is. If it's "X" then load the custom resources.
Now you mentioned running multiple versions of your app on the same computer. You're right, in this case you would have to deactivate the product key with the "X" "Company specific" value and reactivate with a product key without the feature set. But this is only a problem on your development machines, right? No one will get this in the real world, right?
B. New version
The second choice is to create a separate version in LimeLM (click the "Add another version to YourApp" link in your dashboard). There are 2 options:
Option 1: Make a custom installer for this one client
This option is simple. Just create a separate installer that uses the new version's *.dat file and GUID.
Option 2: Include both *.dat files, load at runtime
This seems like the easier of the 2 options, but it's not. Firstly, how do you know when your app starts which *.dat file to load? You could hardcode it in the installer, but then you're back to option 1. But let's say you have a way of identifying the corporate computer, then you can just dynamically load the .dat file.
We didn't include this function in TurboActivate.as file, but here's how you can load the *.dat file at runtime. First add this function to the bottom of TurboActivate.as:
/** * Load the TurboActivate.dat file from a directory other than the same directory as systa. * @param file The file path to the TurboActivate.dat file */ public function PDetsFromPath(file:String):void { PreRun();
FunctionProcessing = FUNC_PDetsFromPath; process.standardInput.writeInt(FUNC_PDetsFromPath); process.standardInput.writeUTF(file); }
You must call this function before you call any other functions. And you can only run this function once (that is, you can't load one *.dat then load another).
Does this help?