Portable Altap Salamander
Portable Altap Salamander
Hi there,
install AS on your USB drive and use "StartPortable.bat". That's all! Possible other AS installations with other configurations will not be touched!
"NoSpy.zip" is a bonbon for wiping unloved Win protocols, data etc.
install AS on your USB drive and use "StartPortable.bat". That's all! Possible other AS installations with other configurations will not be touched!
"NoSpy.zip" is a bonbon for wiping unloved Win protocols, data etc.
- Attachments
-
- StartPortable.zip
- StartPortable.bat
- (378 Bytes) Downloaded 1819 times
-
- NoSpy.zip
- NS.bat with helper files
- (228.32 KiB) Downloaded 1634 times
Re: Portable Altap Salamander
My modified version:
PORTSAL.CMD
PORTSAL.CMD
Code: Select all
@echo off
Title Portable Salamander
Color 1F
if not exist portsal.reg goto :noportsal
if not exist salamand.exe goto :noportsal
:begin
if "%1" neq "" goto %1
start/min cmd /c "%~nx0 hide >nul"
goto:eof
:hide
reg export HKCU\Software\Altap %tmp%\..\SP
set el=%errorlevel%
if %el%==0 reg delete HKCU\Software\Altap /f
reg import "portsal.reg"
salamand.exe
reg delete HKCU\Software\Altap /f
if %el%==1 exit /b
reg import %tmp%\..\SP
call >%tmp%\..\SP
del %tmp%\..\SP
goto:eof
:noportsal
cls
echo.
echo.
echo !!! REQUIRED FILES MISSING !!!
echo.
echo Two files are needed for Altap Salamander Portable Launcher
echo to operate. One or both are not found.
echo.
echo 1) PORTSAL.REG - Configuration file which contains your settings
echo You can rename your config_.reg to portsal.reg
echo 2) SALAMAND.EXE - Executable application file
echo.
echo Please verify that these files exist and restart the Portable Launcher
echo.
echo.
echo.
echo.
echo Press any key to exit.
pause > nul
goto:eof
Re: Portable Altap Salamander
--- bump
I shot myself in the foot by accidentally launching 2 versions and lost my previous settings. I have modified the launcher and it will now abort if the registry file exists.
PORTSAL.CMD
I shot myself in the foot by accidentally launching 2 versions and lost my previous settings. I have modified the launcher and it will now abort if the registry file exists.
PORTSAL.CMD
Code: Select all
@echo off
Title Portable Salamander
Color F5
if exist %tmp%\..\SP goto :abort
if not exist portsal.reg goto :noportsal
if not exist salamand.exe goto :noportsal
:begin
if "%1" neq "" goto %1
start/min cmd /c "%~nx0 hide >nul"
goto:eof
:hide
reg export HKCU\Software\Altap %tmp%\..\SP
set el=%errorlevel%
if %el%==0 reg delete HKCU\Software\Altap /f
reg import "portsal.reg"
salamand.exe
reg delete HKCU\Software\Altap /f
if %el%==1 exit /b
reg import %tmp%\..\SP
call >%tmp%\..\SP
del %tmp%\..\SP
goto:eof
:abort
cls
echo.
echo.
echo !!! PORTABLE SALAMANDER ALREADY LAUNCHED !!!
echo.
echo.
echo Registry keys for Altap Salamader are found in %tmp%.
echo.
echo 1) PORTABLE SALAMADER is currently launched
echo OR
echo 2) Previous session registry was not properly imported
echo.
echo Please verify that Altap Salamander launches properly
echo and then restart the Portable Salamander Launcher.
echo.
echo Registry file is: %tmp%\..\SP
echo.
echo.
echo.
echo.
echo Press any key to exit.
pause > nul
goto:eof
:noportsal
cls
echo.
echo.
echo !!! REQUIRED FILES MISSING !!!
echo.
echo Two files are needed for Altap Salamander Portable Launcher
echo to operate. One or both are not found.
echo.
echo 1) PORTSAL.REG - Configuration file which contains your settings
echo You can rename your config_.reg to portsal.reg
echo 2) SALAMAND.EXE - Executable application file
echo.
echo Please verify that these files exist and restart the Portable Launcher
echo.
echo.
echo.
echo.
echo Press any key to exit.
pause > nul
goto:eof
Re: Portable Altap Salamander
This is a really nice idea
and very useful. I've worked through the code and made some changes that I wanna share with you; mainly it's improvements in avoiding and handling of errors. There are 2 TODOs that you might want to take care of
And if you dislike to get status commands, be them pure information or errors, remove line 27 goto hide
Hint: I changed the color and title prefix in Configuration-MainWindow, and the colors for items in panel & operation progress & panel caption in Configuration-Colors, so it's easy to distinguish prtable and main installed Salamander. Moreover, I want np++ of PortableApps for editing files, so in editors I used the command $(SalDir)\..\Notepad++Portable\Notepad++Portable.exe


Code: Select all
@echo off
rem Portable Salamander Launcher - allows portable use of Salamander
rem Source, discussion etc at http://forum.altap.cz/viewtopic.php?f=14&t=3084
rem Relative path to portable salamander directory (where portsal.reg and salamand.exe are). Do not add tailing \
set SalamanderPortableDir=.\PortableApps\SalamanderPortable
rem Settings, checks etc.
set RegBackupFile="%tmp%\SalamanderPortableRegBackup.reg"
if exist %RegBackupFile% goto :abort
if not exist "%SalamanderPortableDir%\portsal.reg" goto :noportsal
if not exist "%SalamanderPortableDir%\salamand.exe" goto :noportsal
:begin
rem Tell user what the window is good for
Title Portable Salamander Launcher - do not close this window!
echo.
echo Portable Salamander Launcher - do not close this window!
echo.
echo.
echo.
rem Hint: Nice to test some code blocks.
if "%1" neq "" goto %1
rem Start minimized command shell that only executes the command and exits afterwards.
rem TODO explain what it does, make errors in :hide visible and then remove godo hide
rem %~nx0 shall be the file name and extension
goto hide
start /min cmd /c "%~nx0 hide >nul"
goto:eof
:hide
rem Save current settings to temporary reg file. Handle possible error!
echo If Salamander configuration exists, I'll try to save to temporary file...
reg export HKCU\Software\Altap %RegBackupFile%
set el1=%errorlevel%
if %el1%==1 Color 0E
if %el1%==1 echo.
if %el1%==1 echo If the error is just that the registry key was not found, and Salamander is
if %el1%==1 echo not installed on this computer, everything is OK and you can continue by
if %el1%==1 echo pressing any key.
if %el1%==1 echo Elsewise press CTRL+C to cancel further actions.
if %el1%==1 pause >nul
if %el1%==1 Color 07
rem If everything is fine, delete current settings, load own / portable settings and start with them
if %el1%==0 reg delete HKCU\Software\Altap /f
reg import "%SalamanderPortableDir%\portsal.reg"
echo Starting Salamander...
"%SalamanderPortableDir%\salamand.exe"
rem After closing portable Salamander, revert to saved settings and remove temporary reg file
reg delete HKCU\Software\Altap /f
set el2=%errorlevel%
if %el2%==1 Color 0E
if %el2%==1 echo.
if %el2%==1 echo Error occoured. If it is severe, abort batch by pressing CTRL+C.
if %el2%==1 pause >nul
if %el2%==1 Color 07
rem Only import etc. if something was exported to avoid false error message
if %el1%==0 reg import %RegBackupFile%
rem TODO I have no idea what that shall be good for - maybe you can explain??
rem call >%RegBackupFile%
if %el1%==0 del %RegBackupFile%
goto:eof
:abort
echo.
echo.
echo !!! PORTABLE SALAMANDER ALREADY LAUNCHED !!!
echo.
echo.
echo Saved registry keys for Altap Salamader are found.
echo.
echo 1) PORTABLE SALAMADER is currently launched
echo OR
echo 2) Previous session registry was not properly imported
echo.
echo Please verify that Altap Salamander launches properly
echo and then restart the Portable Salamander Launcher.
echo.
echo Registry file with saved local settings is
echo %RegBackupFile%
echo.
echo.
echo.
echo Press any key to exit.
pause > nul
goto:eof
:noportsal
echo.
echo.
echo !!! REQUIRED FILES MISSING !!!
echo.
echo Two files are needed for Altap Salamander Portable Launcher
echo to operate. One or both are not found.
echo.
echo 1) PORTSAL.REG - Configuration file which contains your settings
echo You can rename your config_.reg to portsal.reg
echo 2) SALAMAND.EXE - Executable application file
echo.
echo Please verify that these files exist in directory
echo %SalamanderPortableDir%
echo (relative path from this file, can be changed in this file)
echo and restart the Portable Launcher.
echo.
echo.
echo.
echo.
echo Press any key to exit.
pause > nul
goto:eof
Using Salamander since v 1.52
Re: Portable Altap Salamander
I think if we work on this it can get better and better. I know Jan at one point said that Salamander would run from an INI file, of course that would be portable. But this will keep us going until we get a true portable. One thing I like about it is that it can be configured to your liking and the reg file exported and used on any other system without a fear of leaving traces or alterations behind.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Re: Portable Altap Salamander
Yes, we are step closer with Altap Salamander 2.53 beta 1 (Preview Build 38)vld wrote:I know Jan at one point said that Salamander would run from an INI file, of course that would be portable.
+ Import configuration from file to registry and export configuration from registry to file are handled by our own rutines (thanks to Jan Patera's RegLib library). It solves problem with escalation required by formerly used regedit.exe on Vista and Windows 7. Moreover also user without admin rights can import/export configuration now.
But we are not there yet and your script is really appreciated.
Re: Portable Altap Salamander
Now, that's some good news, thanks!
Cann't wait for the truly portable Salamander
Cann't wait for the truly portable Salamander

Re: Portable Altap Salamander
Jan...a request for you guys as I'm sure you can do it better then us. Until you officially come out with the Salamander working from INI, how about a Portable Launcher based on scripts above? This way all a user has to do is install Salamander and if they want to carry it with them, all they do is copy the folder and use the Launcher to execute the EXE. Just a thought.
Re: Portable Altap Salamander
Jan...question for you. When I copy the files and run them on a HDD, when I try to delete them I get a warning that a DLL cannot be deleted, names slips my mind, but I think it's in the PlugIn folder. Can you tell me/us what I need to put into the CMD file which would allow me to nuke all the files?
Re: Portable Altap Salamander
I finally got the chance to play with this. Here's where I see there is a problem:Georgd wrote:This is a really nice ideaand very useful. I've worked through the code and made some changes that I wanna share with you; mainly it's improvements in avoiding and handling of errors. There are 2 TODOs that you might want to take care of
And if you dislike to get status commands, be them pure information or errors, remove line 27 goto hide
Code: Select all
rem Relative path to portable salamander directory (where portsal.reg and salamand.exe are). Do not add tailing \
set SalamanderPortableDir=.\PortableApps\SalamanderPortable
rem Settings, checks etc.
set RegBackupFile="%tmp%\SalamanderPortableRegBackup.reg"
if exist %RegBackupFile% goto :abort
if not exist "%SalamanderPortableDir%\portsal.reg" goto :noportsal
if not exist "%SalamanderPortableDir%\salamand.exe" goto :noportsal
I do like the idea of the command window with s status of what is going on. It would be nice if that window could be totally eliminated so it cannot be accidentally closed.
Re: Portable Altap Salamander
I don't think that is a good solution. I can't see installing application on someone elses system that is not needed. I can always kill the file after a reboot. I'd like to avoid doing that if possible.SelfMan wrote:Get Unlocker
Re: Portable Altap Salamander
Most liekely, the file you cannot delete is the salamext.dll shell extension (a copy hook handler) which you should unregister (regsvr32 /u salamext.dll) and then register with the system for later deletion e.g using sysinternals movefile.
I agree that forcefully deleting the file is not a good idea as this might cause problems with the shell (i.e Explorer) or just any application interacting with the shell.
If you don't need the shell extension, you can avoid to have it registerd by not copying it or renaming it or moveing it to a different location prior to running Salamand.exe. The purpose of the extension is to support copy/move to/from plugin filesystems (e.g. when browsing an archive like a folder).
I agree that forcefully deleting the file is not a good idea as this might cause problems with the shell (i.e Explorer) or just any application interacting with the shell.
If you don't need the shell extension, you can avoid to have it registerd by not copying it or renaming it or moveing it to a different location prior to running Salamand.exe. The purpose of the extension is to support copy/move to/from plugin filesystems (e.g. when browsing an archive like a folder).
Re: Portable Altap Salamander
I didn mean to install the Unlocker on all the computers but on your test machine for testing. Unlocker displays which file is locked by which process, so you dont have to guess. (sorry I didn't have time to explain)
But as SvA pointed out, its probably the salamext.dll .
But as SvA pointed out, its probably the salamext.dll .
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Re: Portable Altap Salamander
As SvA mentioned, the salamext.dll is optional. As shell extension it is loaded into other processes and can be deleted after you logout (we are using delayed delete in Salamander uninstaller).
Shell extensions certainly should not be part of portable applications.
Shell extensions certainly should not be part of portable applications.