You are here

[Outdated] PortableApps.com Launcher 2.0 Beta 4

127 posts / 0 new
Last post
Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
[Outdated] PortableApps.com Launcher 2.0 Beta 4

This thread contains an outdated version of the PortableApps.com Launcher. The next release is the PortableApps.com Launcher 2.0 Release Candidate 1.

The PortableApps.com Launcher is your PAL in making applications portable. It's a universal launcher for which you don't need to write code. Instead, it's configured with an INI file (which goes in App\AppInfo\Launcher\AppNamePortable.ini), and uses a splash screen in App\AppInfo\Launcher\splash.jpg.

Download the PortableApps.com Launcher 2.0 Beta 4 [697KB download / 1.7MB installed]
(MD5: d69c24e4eb57aefd3c3d44be93b98ef7)

Download the PortableApps.com Application Template 2.0 Beta 2 [115KB download / 195KB extracted]
(MD5: f58081d20bf55c360f674e4d68b91702)
(Correct, this has not been updated yet. Recommendation: stick with what you have and just download the new Launcher package and run the Generator over your directory. I think I'll remove PAL completely from this for my next release and say to use the Generator of the Launcher package.)

To get a custom build of the PortableApps.com Launcher with custom icon and name (recommended), download the main PortableApps.com Launcher package and Unicode NSIS Portable and install them next to one another. Then run the PortableApps.com Launcher Generator and select your directory. (While you can make a non-Unicode build of the PortableApps.com Launcher currently, Unicode is the way we're headed and eventually we'll be requiring Unicode NSIS.) You will probably want the Unicode build of the PortableApps.com Installer, available from the Unicode NSIS development thread above.

Known Issues:

  • Environment variables get messed up when running as admin (so language switching fails as the environment variables vanish). Due to be fixed for 2.1.

Links:

Release Notes:

  • 2.0 Beta 4 (2010-04-20): Unicode NSIS Portable 2.45 build (should still work fine in 2.46 RC 2), get Gringoloco's registry plugin patch when building until his next Unicode NSIS Portable release. Various bug-fixes, especially with secondary launches. Some more work on the manual too. See comments and changesets.
  • 2.0 Beta 3 (2010-04-13): Unicode build, various bug-fixes and a new feature or two. See comments in the 2.0 Beta 2 thread, the repository changesets and the manual. The manual received a lot of work.

Discussion, notification of some changes and earlier release notes are available in the 2.0 Beta 2 thread.

aamiel
aamiel's picture
Offline
Last seen: 3 years 9 months ago
Joined: 2008-11-03 04:53
The registry issue I reported

The registry issue I reported on Beta2 a couple of days ago is still present in beta3. I only had this issue on PCs with XP SP2.
Has anyone been able to reproduce?

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Haven't reproduced

In my testing on XP (SP3) I haven't been able to reproduce it before. The only issue I've had with registry handling is that putting the contents of a file into the registry didn't work in Wine, at least back at 1.0 Beta 1. I've still got to take a look at that. (I think I should put that on the top of my list.)

So you say HKEY_CURRENT_USER\Software\wxMaxima is being left behind; is it being backed up into maxima_portable.reg successfully and just not being deleted? And I presume there's no local copy which would be being backed up and then restored? Also, it might be worth while trying an ANSI build - set your path to makensis (in Data\settings) to ..\NSISPortable\App\NSIS\makensis.exe or wherever you've got it, and run the Generator again. It may well be an issue with the Registry plug-in. I may also consider using DelRegKey or whatever it's called.

Thanks for helping Smile

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
Since I'm taking over

Since I'm taking over wxMaxima, I will not be able to test this since I run 7 on my laptop and my XP (SP 3) is currently not working. However, if aamiel will further test my packages and you can find a fix for this then I'll work toward this goal as well.

aamiel
aamiel's picture
Offline
Last seen: 3 years 9 months ago
Joined: 2008-11-03 04:53
You are right

The problem happens not only with Maxima but other applications I am using (StarUML Scilab, ...). It seems that absolutely nothing is done with the registry by the launcher (no backup of existing entries, nor creation of *.reg file, nor update of *.reg file if present). The only common thing between those 2 PCs I can think of is XP SP2 but that could be a red herring. It is working everywhere else I tried.

Anyway, as you suggested, I replaced the path to point to the non unicode NSIS and now it is working.

I don't know what to do now. As John says, if it is XP SP2 we could live with it, but as you said it could be something else. Let me know if you want to try something else.

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
Could you try using the

Could you try using the following registry plug-in (it's a small update from the current one):
http://gringoloco.portableapps.chrismorgan.info/NSISu_plugins/Registry.dll

Otherwise I'll have to get my hands on XP sp2, to reproduce and fix this problem Sad

Formerly Gringoloco
Windows XP Pro sp3 x32

aamiel
aamiel's picture
Offline
Last seen: 3 years 9 months ago
Joined: 2008-11-03 04:53
Problem fixed

Put your plugin in the unicode NSIS and now the new launcher takes care of the registry.

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
Could you keep an eye out for

Could you keep an eye out for the behavior of the other unicode plug-ins working for XP sp2, please ?

I'm really puzzled why & how this could only be a problem with XPsp2 ???
The only real thing what I changed was the compiler (vc++6.0)

Pardon

Formerly Gringoloco
Windows XP Pro sp3 x32

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
Noted.

I'll update the plugin before generating the wxMaxima launcher when I get to it.

So this affects all apps that deal with the registry? (If so, I'll have to update Speccy too.)

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Yes

I presume Gringoloco will update it in the next release of his Unicode NSIS Portable distribution. Until then you may wish to replace it yourself.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
I'm an impatient man.

I'm an impatient man. Smile

John T. Haller
John T. Haller's picture
Offline
Last seen: 1 hour 37 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
SP2 Only?

If this is SP2 only, I'm inclined to let it go, personally. There's really no reason for machines to be on SP2 and it's being end-of-lifed in 3 months (3 months from yesterday, in fact), and SP3 is a free upgrade.

Sometimes, the impossible can become possible, if you're awesome!

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Fix it if reasonable

Nevertheless I always like to fix these sorts of things if it's reasonable. Otherwise they come back and bite you. Often it'll be an indicator that there's something wrong in the way it's doing it, and it's better to fix it so that it can't go wrong rather than leaving it so it only goes wrong in certain situations... because it might get worse.

Prevention is better than a cure.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
Problem persists.

Using Unicode NSIS 2.46 rc2 Development Test 2, this appears to still exist. dboki89 seems to have encountered this problem again in this comment.

dboki89
Offline
Last seen: 9 years 8 months ago
Joined: 2009-11-30 20:44
.

One note. I don't know the relevance of this, but there've been several security updates for Win XP recently, which, according to M$, changed the way Windows deals with registry and it's kernel... I could post links, if interested.

So the problem could have quite possibly been fixed at this point, but later on reintroduced with the M$ "Security Update(s)".

Although, I don't think it was ever really fixed in the first place. Call it a hunch, or call it reading what Gringoloco said:

The only real thing what I changed was the compiler (vc++6.0)

The problem just wasn't dealt with... Sad Changing the version of the compiler, while leaving the source unchanged... I'm no expert, but could that have even possibly made any changes?

Btw, John, there are many XP SP2 OSes out there, that's mainly what I encounter. Win 7 is the second thing I most encounter. Then it's XP SP3, then others... And as ottosykora said in another post, there's some number of PCs still having unsupported versions of Windows! Though they usually don't have Internet access.

My posts are old and likely no longer relevant.

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
Hi , I need your help here...

I started a thread to get to the bottom of this issue (and so we do not flood other threads).
https://portableapps.com/node/23419

Formerly Gringoloco
Windows XP Pro sp3 x32

John T. Haller
John T. Haller's picture
Offline
Last seen: 1 hour 37 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Not For Long

There shouldn't be for long. Microsoft is dropping all support for XP SP2 in less than two months which means no more security updates.

Sometimes, the impossible can become possible, if you're awesome!

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
SingleAppInstance=true

Whenever the above option is set, the launcher just exits without notification to the user.

[edit: Sorry getting a bit confused and not having much time, but
basically what I was testing is to stop a second portable instance of an app.
In both cases (SingleAppInstance / SinglePortableAppInstance=true) there isn't any notification to the user, but worse the launcher.ini (& PortableApps.comLauncherRuntimeData.ini) of the current portable instance are deleted, so stuff gets left behind on exit

I'm using latest update from Development repository !

Formerly Gringoloco
Windows XP Pro sp3 x32

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
Ok, a bit more clear..

But still I'm confused...
Besides, that I can't get the 'LauncherAlreadyRunning' messagebox showing up on SingleAppInstance=true !

I got a real problem with secondary launch, in general !!!
On a secondary launch (PortableApps.comLauncher.nsi):

	${If} $Status != running
		${CallPS} Pre +
		${CallPS} PreExec +
		WriteINIStr $DataDirectory\PortableApps.comLauncherRuntimeData.ini PortableApps.comLauncher Status running
		; File gets deleted in segment Core, hook Unload, so it'll only be "running"
		; in case of power-outage, disk removal while running or something like that.
		Call Execute
	${EndIf}

so no execution at all but Core_Unload deletes the $PLUGINSDIR & PortableApps.comLauncherRuntimeData.ini of the first launcher.
Core.nsh ${SegmentUnload}:

	ReadINIStr $0 $DataDirectory\PortableApps.comLauncherRuntimeData.ini PortableApps.comLauncher PluginsDir
	${If}    $0 != ""
	${AndIf} $0 != $PLUGINSDIR
		RMDir /r $0
	${EndIf}
	Delete $DataDirectory\PortableApps.comLauncherRuntimeData.ini

This really messes things up. I spend ages trying to fix the problem but get very confused on all the code.
I tried ansi NSIS and the beta 3 download from this topic.
Am I doing something wrong here ? Pardon
[edit:just tried PChat Portable 1.0.4 Development Test 3, and same thing happening. Not sure what beta version it is thought]
[edit2:tried another XPsp3 machine, same problem
My new release of Unicode NSIS Portable DT 7 also has this problem and leaves HKCU\Software\NSIS behind on a secondary launch]

Formerly Gringoloco
Windows XP Pro sp3 x32

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Abort vs. Quit

In switching from Sections to Functions I neglected to check the full implications of it. I think I should go through and replace Abort with Quit in the segments to be safe.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

John T. Haller
John T. Haller's picture
Offline
Last seen: 1 hour 37 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Fix It?

Can we get confirmation that this does fix the issue? And if so, can Chris push out a quick B4 with just that change?

Sometimes, the impossible can become possible, if you're awesome!

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
Just to be clear, what apps

Just to be clear, what apps would this affect? *All* apps, or just ones that deal with the registry?

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Almost all

This will affect almost all apps. Any with things that they need to do afterwards may be messed up by secondary instances.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
Eh.

I've done cleanups in the .ini files here and there, so I guess I need a reason to update them all again. Blum

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Try now

Please try the hg tip now. I've replaced Abort with Quit right through the segments.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
After the changes discussed in IRC....

I still can not get the 'LauncherAlreadyRunning' notification ?
In InstanceManagement.nsh :

!macro _InstanceManagement_AbortIfRunning
	${If} $SecondaryLaunch != true
	${AndIf} ${ProcessExists} $0
		MessageBox MB_OK|MB_ICONSTOP `$(LauncherAlreadyRunning)`
		Abort
	${EndIf}
!macroend
${SegmentInit}
...
	;=== Check if application already running
	${ReadLauncherConfig} $0 Launch SingleAppInstance
	${If} $0 != false
	${AndIfNot} $UsingJavaExecutable == true
		${GetFileName} $ProgramExecutable $0
		!insertmacro _InstanceManagement_AbortIfRunning
	${EndIf}
!macroend

I'm using : SingleAppInstance=true
BTW: appently 'SinglePortableAppInstance=true' isn't supposed to give a notification, but just exit! Why?
[edit: done some testing and all the issues from before seem to be solved perfectly]

Formerly Gringoloco
Windows XP Pro sp3 x32

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Secondary launches fixed

I've just pushed some commits I made locally while SourceForge were down which should fix the secondary launch problem where it was messing up the primary instance and not working properly as well.

Gringoloco: I haven't looked at your issue thoroughly yet and I'm busy today finishing off an assignment. As for SinglePortableAppInstance not showing a message this is by design and is in harmony with what we do with all our applications. (See the Mutex code of any of our launchers.)

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Writing debug messages to a file

You can now write debug messages to a file (in the hg tip);

!define DEBUG_OUTPUT value

where value is file or messagebox to just do one, otherwise don't define it and you'll get the message boxes and the debug output written to Data\debug.log.

I hope this helps with debugging.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Approaching Beta 4

I'm now approaching Beta 4. Are there any last issues to be sorted out?

The release may take a couple of days. I've got a couple of Uni assignments to do as well.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

vf2nsr
vf2nsr's picture
Offline
Last seen: 8 years 2 days ago
Developer
Joined: 2010-02-13 17:10
Very Nice

Nice feature the printing out to a txt file, well done and a great tool to have. You are truly a genius for coming up with the idea and implementing it. Wink

“Be who you are and say what you feel because those who mind don't matter and those who matter don't mind.” Dr. Seuss

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
PortableApps.com Launcher 2.0 Beta 4 released

I haven't yet updated the manual online, but look at the custom language variables page and you'll see a flow-chart in it! The manual is no longer just text! (Suggestions for other diagrams are also welcome.)

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Update notes

I've just had 20 minutes free and so I put in two of the features I had scheduled for 2.1.

Both these changes apply to PortableApps.comLauncherCustom.nsh:

  • Override the Execute function completely.

    ${OverrideExecute}
        ...
    !macroend
  • Disable inbuilt segment-hooks.
    ${DisableHook} Segment Hook

These are not yet documented in the manual. I may do that tomorrow or next week.

Note to self: add Danish translation.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
Feature creep is a hard

Feature creep is a hard temptation to resist I see. Blum

EDIT: Was supposed to be in response to your latest post.

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Sort of

Those two were very easy to do, very easy to test to make sure they were working properly, and the only two things missing in my opinion which could justify people in using a custom launcher instead of the PortableApps.com Launcher. Now that they're in I can't think of any reason still present for people to not use PAL.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

vf2nsr
vf2nsr's picture
Offline
Last seen: 8 years 2 days ago
Developer
Joined: 2010-02-13 17:10
Random thoughts?

I know this is late in the game, I wonder if there might be a way to have a script for using for Python based apps, sort of like we do for java based apps? I know that there was some work done on portabalizing python and I know a few places exist with these versions. Curious if it would make some sort of sense to create a version that installs into the CommonFiles directory? Just some random thoughts feel free to ignore the post as it may not even be appropriate here

“Be who you are and say what you feel because those who mind don't matter and those who matter don't mind.” Dr. Seuss

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Different

Python is different. Python applications (not libraries) are normally distributed after processing them with py2exe, for example Task Coach or BPBible (BPBible has great build and release scripts though, it's especially PortableApps.com friendly as I put in an argument for make_release.py, --portable, to build a portable version for here with the best py2exe settings and doing up the PAF bundle too).

There have been discussions about it before. For the moment we're not doing a Python CommonFiles package and so we're not doing it in the Launcher.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

vf2nsr
vf2nsr's picture
Offline
Last seen: 8 years 2 days ago
Developer
Joined: 2010-02-13 17:10
actuqally that was my thought

Actually since there are 2 portable version of python around athat was my thinking about creating a common files program to place the librbaries in there. But since it was already hashed out before my arrival I will leave it be. Thanks Chris.

“Be who you are and say what you feel because those who mind don't matter and those who matter don't mind.” Dr. Seuss

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
Java problem

I have a problem with the Launcher not cleaning up after running a Java App (PortableApps.comLauncherRuntimeData.ini and a Temp folder in /Data).
Besides that the file->open dialog doesnt work in my App.
Here is the StorybookPortable.ini:

[Launch]
ProgramExecutable=javaw.exe
CommandLineArguments= -Duser.home="%PAL:DataDir%\settings" -Xmx192m -jar lib/storybook.jar
WorkingDirectory=%PAL:AppDir%\Storybook
LaunchAfterSplashScreen=true
WaitForProgram=false

[Activate]
Java=require

Other than that everything is clean.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

John T. Haller
John T. Haller's picture
Offline
Last seen: 1 hour 37 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Add Desktop

Trying adding a Desktop and similar directories within Data\settings. It could be that the app is expecting them there.

Sometimes, the impossible can become possible, if you're awesome!

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
nope

Didnt help. The open file dialoge of the local version opens inside the settings folder (C:/blabla/settings/projects). I guess its something with me telling him where to put its settings.
For the local version, Process Explorer says this (rightclick on javaw.exe ->Properties):

Path=C:\WINDOWS\system32\javaw.exe
Commandline="C:\WINDOWS\system32\javaw.exe" -Xmx192m -jar lib/storybook.jar
Current Directory=C:\Programme\Storybook\

The portable one is different:

Path=C:\Programme\Java\jre6\bin\javaw.exe
Commandline="C:\Programme\Java\jre6\bin\javaw.exe" -Duser.home="D:\StoryBook\StorybookPortable\Data\settings" -Xmx192m -jar lib/storybook.jar
Current Directory=D:\StoryBook\StorybookPortable\App\Storybook\

Maybe I have to find a different way for the settings.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
As expected (mostly)

You've specified WaitForProgram=false so that's as expected. However that raises an issue with the status check which hadn't occurred to me. I presume that this ends up with it never launching properly after the first time. Are you experiencing any adverse affects due to this? I just took another look at the code and I can't see any reason why anything would be going wrong. (Except for a BIG problem with the way I'm calling it a secondary launch and so primary segments won't run, I MUST fix that.)

I'll go and fix it presently. (Got to do migration of bpbible.com and a few other sites to a new host by Wednesday also.)

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
adverse effects?

Other than the open file dialogue not working? No. Smile
And I think it shouldn't leave the files inside the data folder.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
File picker

The file picker can't really be PAL's fault, you haven't told it to do anything which messes with USERPROFILE.

Those things being put in the Data folder is due to your setting WaitForProgram=false. That means that they can't be cleaned up afterwards as the launcher has quit (and rightly so).

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
LBreakout

I've found something else:
LBreakout2 has the ability to make screen shots and stores them inside the /App/lbreakout2 folder. They are named "screenshot1.bmp", "screenshot2.bmp" etc.
Unfortunately the PAL doesn't support wild cards yet. What do we do about this? Keeping them inside the App folder till PAL supports wild cards is the fastest solution but not the nicest that came to my mind. Any other ideas?

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
What about adding

What about adding 'PortableApps.comLauncherCustom.nsh' !

Formerly Gringoloco
Windows XP Pro sp3 x32

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
Thanks

That might be something worth looking at. Forgot about it. Smile

EDIT: Just realised: rename cant be used with wildcards too.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Find*

The best way to do it for yourself is with FindFirst/FindNext/FindClose.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

temp4746
Offline
Last seen: 13 years 11 months ago
Joined: 2009-03-09 04:06
Multiple launchers

How would you handle the scenario where a single app might need multiple launchers for different exes?
I can seem to find a way to do this.

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Possible

This is entirely possible. Take a look at Maxima Portable, that uses two. There are currently some issues with multiple launchers though which I hope to resolve soon. For the moment, you won't be able to use both at the same time, you'll need to set CloseEXE to the other in each INI file. This I will be fixing soon.

There are some big problems though with multiple executables, in the way which it handles it, for which there is no one answer. How much should they share what they do? It's a hard question to answer, I'm trying to keep them as entirely separate packages which may not always be what's wanted. After 2.0 I may invest time in putting in a main launcher.ini file which the two share work on, but that's not yet.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

temp4746
Offline
Last seen: 13 years 11 months ago
Joined: 2009-03-09 04:06
That is nasty

Nasty bug, you should really try to resolve it (I think it might have to do with both launchers trying to use the same runtime data file)

Also the generator will only generate a launcher for the main application, but you can create launchers for the rest by changing the appinfo.ini name and appid and the appicon.ico files temporarily. Considering that it is the exact same launcher except with custom icon and name unless you use a custom segment.
Would be nice if you make this nicer to do, as in running the generator will allow generating all the launchers at once.

EDIT: Even worse I think all the launchers you create for the same app will all use the same %AppName%PortableSettings.ini file, meaning that once you run and close one of the launchers the rest will have a wrong LastDrive entry for drive updating.

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
All planned

I've already got all that planned.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Homer_S
Offline
Last seen: 6 years 3 months ago
Joined: 2010-04-27 09:28
Just Starting

Sorry if this is the wrong place.

I am working on a launcher for a test application ({AppName}). I have gotten the PALauncher to complete but when I launch the new application, I get an error that launcher.ini cannot be found. It is looking in some random spot in the current user's temp folder (C:\Users\{current user}\AppData\Local\Temp\blah.tmp\launcher.ini). Is there a setting I'm missing before running PortableApps.com Launcher or is my launcher.ini in the wrong spot (currently H:\PortableApps\{AppName}Portable\App\AppInfo\launcher.ini)?

Thanks!
Homer

vf2nsr
vf2nsr's picture
Offline
Last seen: 8 years 2 days ago
Developer
Joined: 2010-02-13 17:10
Yup

Launcher.ini should be in PortableApps\AppNAmePortable\App\AppInfo\Launcher\AppNamePortable.ini

“Be who you are and say what you feel because those who mind don't matter and those who matter don't mind.” Dr. Seuss

Homer_S
Offline
Last seen: 6 years 3 months ago
Joined: 2010-04-27 09:28
Bingo!

That was the ticket. So now it loads without a launcher error! Next up, figure out how to backup any existing registry keys under HKCU\Software\{App Name}, load up my file and then put it back.

Thanks!
Homer

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
[RegistryKeys]

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Homer_S
Offline
Last seen: 6 years 3 months ago
Joined: 2010-04-27 09:28
Thank you for that. I'm using

Thank you for that. I'm using the default installer by running PortableApps Launcher. I can get my app to run as long as the registry entries are already present. I cannot seem to interact with them at all. Here is some of the sample code.

[Activate]
Registry=true

[RegistryKeys]
AppNamePortable=HKCU\Software\Developer\AppName

[FileWrite1]
Type=Replace
File=%PAL:DataDir%\settings\AppNamePortable.reg
Find=%PAL:LastDrive%\\
Replace=%PAL:Drive%\\

[RegistryValueWrite]
HKCU\Software\Developer\AppName\Exe Path Old=H:\PortableApps\AppNamePortable\App\AppName

[RegistryValueBackupDelete]
1=HKCU\Software\AppName\AppName\Exe Path

With or without this code, no changes are made to the registry. I'm running under Windows 7 x64 with UAC on stun from a non-Admin account.

Thanks for looking!
Homer

[<pre>, not <code>, for blocks - mod Chris]

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Explain

I'm afraid I can't understand what you're saying/asking properly. Could you please explain? It could also help if you mentioned real values rather than dummy ones.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Homer_S
Offline
Last seen: 6 years 3 months ago
Joined: 2010-04-27 09:28
Ok... Here is my current

Ok...

Here is my current launcher.ini file (named armybuilder2portable.ini):

[ArmyBuilder2Portable]
ArmyBuilder2Directory=App\ArmyBuilder2
SettingsDirectory=Data\settings
ArmyBuilder2Executable=ArmyBldr.exe

[Launch]
ProgramExecutable=ArmyBuilder2\ArmyBldr.exe

[Activate]
Registry=true

[RegistryKeys]
AB2Portable=HKCU\Software\Lone Wolf Development\Army Builder

[FileWrite1]
Type=INI
File=%PAL:DataDir%\settings\AB2test.ini
Section=Section
Key=Key
Value=Value

[FileWrite2]
Type=Replace
File=%PAL:DataDir%\settings\AB2Portable.reg
Find=%PAL:LastDrive%\\
Replace=%PAL:Drive%\\

[RegistryValueWrite]
HKCU\Software\Lone Wolf Development\Army Builder\Exe Path Old=H:\PortableApps\ArmyBuilder2Portable\App\ArmyBuilder2

[RegistryValueBackupDelete]
1=HKCU\Software\Lone Wolf Development\Army Builder\Exe Path

The INI file and specific reads/writes are for testing. I cannot seem to read/write the registry, however, the INI test worked. I managed to change a value in a dummy INI file just to make sure that the launcher was actually getting anything I was wrtiing.

I'm wondering if this is an issue similar to the Registry.dll issue above?

Thanks for any help,
Homer

[Again, use <pre> for blocks - mod Chris]

Homer_S
Offline
Last seen: 6 years 3 months ago
Joined: 2010-04-27 09:28
Success?

I think it might be working. I tried the method discussed here: https://portableapps.com/node/21006 (deleting the data\settings directory and having the launcher recreate it from the app\defaultdata directory). It is now working under XP (regedit locked out). I'll try under Win7 where I can look in the registry and make sure it is not leaving anything behind.

I wonder if the launcher might need a way to copy over the defaultdata contents on first launch to eliminate this issue? or it might just be me...

EDIT: Spoke too soon, it works intermittently and I'm not sure why. It definitely put something in the registry, but it is not backing up/restoring what was there.

EDIT 2: OK, I changed the header in the reg file to REGEDIT4. Things seem somewhat happier. Is there a format that the launcher expects the contents of the reg file in?

Homer

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
Hi Homer_S

Leave your .reg file as 'Windows Registry Editor Version 5.00', and use:

[FileWrite2]
Type=Replace
File=%PAL:DataDir%\settings\AB2Portable.reg
Find=%PAL:LastDrive%\\
Replace=%PAL:Drive%\\
Encoding=UTF16-LE

The following part you should just delete(it's a setup of an old-style launcher ):

[ArmyBuilder2Portable]
ArmyBuilder2Directory=App\ArmyBuilder2
SettingsDirectory=Data\settings
ArmyBuilder2Executable=ArmyBldr.exe

Some of your other settings(registry) do not seem to have the proper format, you should have a look at the manual
http://portableapps.chrismorgan.info/portableapps/launcher/docs/ref/laun...

Formerly Gringoloco
Windows XP Pro sp3 x32

Homer_S
Offline
Last seen: 6 years 3 months ago
Joined: 2010-04-27 09:28
Thanks for all the help! I

Thanks for all the help!

I figured out what the error was. I was not waiting on the right application, so it was writing in the registry and immediately deleting it. Now, I can launch the app, view the new changes in the registry, exit and they go away. I also verified that any existing registry settings are backed up and restored.

EDIT: BTW a big help in addition to you folks was "going to school" on the PortableApps.comLauncher.ini file.

Last (?) issues:

1) How do I handle a file like vcl50.bpl that another app is dependent on? [This one was easy, I just dropped it into the appname folder, I suppose there is a more "standard" way to do this. In a "proper" install, it is found in the C:\Windows folder.]

2) How do I handle a second app in the same appname folder that I would like to run concurrently?

Thanks again!
Homer

Benedikt93
Offline
Last seen: 9 years 10 months ago
Joined: 2009-12-17 14:46
Services

I just found http://nsis.sourceforge.net/NSIS_Service_Lib , might be useful for you when reimplementing services.
BTW, when do you plan to add them again to PAL?

"Der Klügere gibt nach, deshalb regieren Dumme die Welt."

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
2.1

Services are in the plan for 2.1. (See my tracker.)

ServiceLib is what I based my code on; I found myself intensely dissatisfied with the way it did things (very messy), and so I started writing an update to it doing it in a more up-to-date way - NewServiceLib (still visible in the repository if you go back in history). The main reason I turned it off was the null-separated, double-null-terminated nature of dependencies list. I now know how to fix that.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
Language

Why is the language always set to english if the App isn't launched from the platform?
I wanted ATanks to keep the language it has if there is no platform running but I cant. Thats just so if someone is using it without the PLatform and has ATanks set to french, it should stay in french and not switch back to english every time he ruins it.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Coming after 2.0

I'm avoiding the temptation to feature creep, we really should just get PAL out pretty much as it is after a few more bug fixes. I've got it on my list to provide a ReadINIStr/ConfigRead to get the language if the Platform isn't there. Handling it well will be quite difficult though as different apps will want different things. This language handling is about the most abstract task I've had with PAL.

For the moment, you can use the custom segment to do it if you want.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

John T. Haller
John T. Haller's picture
Offline
Last seen: 1 hour 37 min ago
AdminDeveloperModeratorTranslator
Joined: 2005-11-28 22:21
Do Nothing

Actually PAL should do absolutely nothing language-wise if it doesn't find the PA.c Language environment variables already set for it by the platform. I thought we discussed this earlier. If PAL is coming up with them itself (for its own purposes) it could set its own additional internal variable to track whether or not it got the language info from the calling app (ie the platform) and just skip the whole language switching section if it didn't.

If it does always set the app to English with no platform, we can't use it in any released apps until that is fixed as that would be a major bug.

Sometimes, the impossible can become possible, if you're awesome!

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Not like that

You can't just skip the language switching section, because of the way it works. The language is set as an environment variable which may be used in a registry section (Keys or ValueWrite), FileWrite section or elsewhere. It's got to have a value.

It doesn't (necessarily) always set it to English when there is no value, that's up to the launcher.ini file writer. They can set up the default. The ability to read what the value should be is just something I haven't got to yet.

I wouldn't call it a bug at all, I call it instead an area which I haven't fully developed. As I said above, in the mean time custom code can handle it.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

scriptdaemon
Offline
Last seen: 4 years 10 months ago
Developer
Joined: 2008-10-10 17:40
Is it possible to skip the

Is it possible to skip the language section, leaving the CustomLanguage variable empty, and then just skip anything that uses it if it's empty?

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Unreasonable

That would break far too much encapsulation. Each section would then need to cope with it and there would generally be large-scale duplication of code, and in an ongoing manner which would need attending to with each new section.

Besides which it may not be what's wanted, particularly if the language is set by an environment variable, and an application's default language is not English.

I'm working on a more neat solution.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

richo
richo's picture
Offline
Last seen: 5 months 1 week ago
Joined: 2007-01-31 22:03
What about...

What about storing the last used language in the ini and ignoring that value when run from the platform?

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
No

The problem with that is when the user changes the language inside the application.

I'm planning on getting to work on this today after my lecture which I'm about to head off to. I'll try to have something ready within about three hours (by which time I'll be off home).

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
custom segment

I AM using a custom segment but still PortableApps.comLocaleCode2 is set to english.
so I cant go and say: "if its empty then do nothing and skip the language replacement" and thus leaving the language as is. The way it is now if someone launches ATanks without the platform, changes the language to french and restarts, its back to english which isnt really a way to go imho.

EDIT:
I tried getting it done with the built in "tools of language handling" but couldn't get it to work. I may give it another shot as I think I didn't understand how it works the way I do now.

EDIT2:
Got it to work now with the built in "tools of language handling". It even defaults to english if a language is set it doesn't have cause in that case the launcher doesn't replace the string and keeps it as mk for example and ATanks ignores it and goes back to english.
But it still reverts to english if I run it without the Platform.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Coming

Avoiding reverting to English is something I'm going to be working on shortly, before 2.0. See the #portableapps logs from yesterday for some details.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

temp4746
Offline
Last seen: 13 years 11 months ago
Joined: 2009-03-09 04:06
WaitForProgram=false Bug

When a launcher is using WaitForProgram=false, it will leave behind The RuntimeSettings file and a Temp directory in the DataDir of the application, which might cause issues later on.

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Part fixed in tip, part not an issue

The RuntimeSettings thing is fixed in tip, the Data\temp thing is by design. It's cleared next time at startup so the app gets a clean TEMP directory. It can be disabled with CleanTEMP=false. I just found that lots of (most, really) apps were leaving things in TEMP and so I set the default to true. However if you don't wait for the program then it's clearly not an option to leave it in the machine's TEMP directory. It needs to be somewhere where it can stay without needing cleaning up afterwards.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

agdurrette
Offline
Last seen: 10 months 1 week ago
Developer
Joined: 2008-01-16 13:55
Does it work well with .net

Does it work well with .net apps?

"It's just an online installer. It's not going to mug you.", JTH
"The shell is the key to unlock Linux's greatest advantages."

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Don't know

Do they need anything special?

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

agdurrette
Offline
Last seen: 10 months 1 week ago
Developer
Joined: 2008-01-16 13:55
I hope not, I have a couple

I hope not, I have a couple .net apps that I want to work on. I will let you know if I come across any thing.

"It's just an online installer. It's not going to mug you.", JTH
"The shell is the key to unlock Linux's greatest advantages."

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Reading the custom language from a file

You can now read the custom language from a file with the help of the [LanguageFile]; its syntax is very similar to the [FileWriteN] section (no coincidence) but it's for reading rather than writing. See the documentation commit and the code commit for more details.

Edit: trimming a string from the right is now also implemented, see this commit for more details. I think that gets it up to a completely usable and feature-complete state; another day I'll do registry reading but not yet. It'll be more complex and it's not used as much anyway.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
Registry issue

Is there anything special with registry entries that have a dot in them?
Mine is

[RegistryKeys]
bigsol_portable=HKEY_CURRENT_USER\Software\bigsol
bigsol.nfo_portable=HKEY_CURRENT_USER\Software\bigsol.nfo

and its being left behind...

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Shouldn't be

I leave all that up to the registry plug-in, it shouldn't affect anything. Have you tried a file name without a dot just to make sure of what's causing it? I'll do a code review to see if I can spot any reason why something might happen.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
Yes

I did a rename but it didn't help. It looks like its something a little deeper as the local reg keys aren't backed up at all. Ill keep playing with it...

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Thanks

I'm not sure what this could be. It may be an issue with the registry plug-in.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
Can you compile PAL with ansi

Can you compile PAL with ansi NSIS, and see if PAL behaves the same ?

Formerly Gringoloco
Windows XP Pro sp3 x32

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
Yes

Same result.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
So this can't have anything

So this can't have anything to do with the registry plug-in ! (it starts to be very convenient to just blame anything on the registry plug-in ;-))

BTW: Could you help me to sort out the Wine problem you had in the plug-in test ?
I've updated the package, to include an ansi .reg file! See if that helps?

Formerly Gringoloco
Windows XP Pro sp3 x32

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Doesn't follow

In my opinion that doesn't follow. I can't see any code in the PortableApps.com Launcher which could be causing this at all, so that puts the probable blame (without further testing to make sure values are being passed properly, which they should be, but I haven't actually tested it explicitly) with the registry plug-in or (I don't think even remotely possibly) with regedit.exe or whatever is used upstream. The fact that the bug affects both the Unicode and ANSI versions of the plug-in doesn't really say anything. They use the same (or just about the same) codebase, don't they?

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
Ok, I stopped being lazy, and

Ok, I stopped being lazy, and tried to reproduce this...
But I could NOT !
I've tried in a test script, and I've tried in PAL it self, all works as expected !

Any chance, you were experiencing this in Wine v1.0.1 ?

Formerly Gringoloco
Windows XP Pro sp3 x32

Chris Morgan
Chris Morgan's picture
Offline
Last seen: 9 years 3 months ago
Joined: 2007-04-15 21:08
Unreproducable

What's more, using a test script provided by Gringoloco, I couldn't reproduce it either in Wine 1.1.42 (barring the occasional page fault and random failure... following that up with the Wine people, its registry stuff seems quite buggy, and also NSIS plug-ins often trigger it, in his test ExecDos::Exec was always doing it) or Windows Server 2003.

I am a Christian and a developer and moderator here.

“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1

Simeon
Simeon's picture
Offline
Last seen: 10 years 1 day ago
DeveloperTranslator
Joined: 2006-09-25 15:15
FIXED

...well sort of.
First I want to say a giant "sorry" to everyone who tried to reproduce this or spend his thoughts on this! It was entirely my fault!

I just thought about it and realised that something was weird as I had used the same technique in my old launcher that PAL uses now. So I was pretty sure it couldnt be the Registry Plugin. I looked at my code and all of a sudden I realised that I had forgotten to include

[Activate]
Registry=true

in my ini file. After adding that everything works fine.
So again: Sorry Chris and Gringoloco!
I just hope I didn't delay the new release.

"What about Love?" - "Overrated. Biochemically no different than eating large quantities of chocolate." - Al Pacino in The Devils Advocate

Mark Sikkema
Offline
Last seen: 13 years 4 weeks ago
Developer
Joined: 2009-07-20 14:55
No worries, I'm happy it's

No worries, I'm happy it's sorted !

Formerly Gringoloco
Windows XP Pro sp3 x32

Pages

Topic locked