Hi all,
I am trying to make HLSW portable but have some troubles with it: the hlsw.exe creates registry entries by itself I cannot delete via the Portable Apps Launcher. That's with Windows XP SP3 and HLSW version 1.3.3.7b. My launcher.ini is as follows:
[Launch] ProgramExecutable=HLSW\hlsw.exe ;CommandLineArguments='"-PATH:%PAL:AppDir%\HLSW\"' '"-INSTDIR:."' '"-DATADIR:..\..\Data\userfiles\appdata\HLSW"' '"-URL:%1"' WorkingDirectory=%PAL:AppDir%\HLSW SinglePortableAppInstance=true [Activate] Registry=true [FileWrite1] Type=Replace File=%PAL:DataDir%\registry\hlsw_portable.reg Find=%PAL:LastDrive%\\ Replace=%PAL:Drive%\\ [RegistryKeys] registry\hlsw_portable=HKCU\Software\HLSW [RegistryValueWrite] HKCU\Software\HLSW\Settings\LastServerList=REG_SZ:%APPDATA%\HLSW\serverlist.sl32 [RegistryCleanupForce] 1=HKCU\Software\HLSW 2=HKCU\Classes\.sl00 3=HKCU\Classes\.sl01 4=HKCU\Classes\.sl02 5=HKCU\Classes\.sl03 6=HKCU\Classes\.sl04 7=HKCU\Classes\.sl05 8=HKCU\Classes\.sl06 9=HKCU\Classes\.sl07 10=HKCU\Classes\.sl08 11=HKCU\Classes\.sl09 12=HKCU\Classes\.sl10 13=HKCU\Classes\.sl11 14=HKCU\Classes\.sl12 15=HKCU\Classes\.sl13 16=HKCU\Classes\.sl14 17=HKCU\Classes\.sl15 18=HKCU\Classes\.sl16 19=HKCU\Classes\.sl17 20=HKCU\Classes\.sl18 21=HKCU\Classes\.sl19 22=HKCU\Classes\.sl20 23=HKCU\Classes\.sl21 24=HKCU\Classes\.sl22 25=HKCU\Classes\.sl23 26=HKCU\Classes\.sl24 27=HKCU\Classes\.sl25 28=HKCU\Classes\.sl26 29=HKCU\Classes\.sl27 30=HKCU\Classes\.sl28 31=HKCU\Classes\.sl29 32=HKCU\Classes\.sl30 33=HKCU\Classes\.sl31 34=HKCU\Classes\.sl32 35=HKCU\Classes\.sslf 36=HKCU\Classes\hlsw 37=HKCU\Classes\HLSW Server List [DirectoriesMove] userfiles\appdata\HLSW=%APPDATA%\HLSW [DirectoriesCleanupForce] 1=%APPDATA%\HLSW
In the RegistryCleanupForce sectionI can delete only the first entry but not the others starting with HKCU\classes. Originally they are saved in the HKEY_CLASSES_ROOT section of the registry but per the instructions in the PAL manual I changed that to HKCU\classes. But they do not get deleted by HLSWPortable.exe whne exiting HLSW.
Could someone point me in the right direction what I could have done wrong?
Also I have a question about the command line function which is not working for me. In the above launcher.ini you can see the commented out CommandLineArguments line and I am not sure if I got the Syntax right when using more than one command line argument with spaces in the paths.
Cheers
Gremlin
[What is HLSW?
HLSW is a software that facilitates online gamers the world-wide locating of game servers as well as game server owners or operators the maintenance and administration of their servers]
[RegistryCleanupForce] is something that should almost never be used; I think I may remove it some time. It has problems with portability in that it doesn't back up a local key of that name. What you want is those things in [RegistryKeys] with a key name of
-
. That's equivalent to "no filename". Also another two points: you shouldn't have [RegistryKeys] and [RegistryCleanupForce] on the same key, and you shouldn't have "registry\" in the [RegistryKeys] key - just include the base part of the filename.It's possible that you're running as admin and it's applied those file type registrations to all users rather than just the current user; take a look in HKLM\Classes for those keys.
As for your CommandLineArguments, consider how INI strings are parsed. Here's a quote from a document in the manual in 2.1 in a document explaining INI in some detail:
See if that makes sense to you.
What it means is that what you've got will be read as
"-PATH:%PAL:AppDir%\HLSW\"' '"-INSTDIR:."
. I'll leave it to you to work out what you do 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
Chris, thanks for the hints.
I am running my Windows XP as admin. You are right. The keys are also to be found in HKLM. Unfortunately putting -=HKLM\Classes\.sl00 etc. in the [RegistryKeys] section does not remove those keys after HLSW has been finished.
I have my .reg files in Data/settings/registry/ to keep them away from other files. Just a personal preference. Normaly I would put them in Data/registry/ but the Launcher expects them to be in the Data/settings/ tree.
I have to mess a little bit more with the CommandLineArguments feature. It would be nice not to move the user files HLSW uses into C:\Documents and Settings\Application Data\HSLW\ but rather to use the command line argument to point HLSW to Data\settings\userfiles\appdata\HLSW\. That would save me one step when starting and exiting HLSW Portable.
Cheers
Gremlin
I found a DOS Batch script that makes HLSW portable and it works pretty well
Try to contact the author to work with him!
It's on GitHub : [link to illegal software site removed by mod JTH]