WinBox portable app?

It's great I can just run winbox.exe without needing to install anything, but it still creates folders in:

C:\Users\\AppData\Local\MikroTik\WinBox
C:\Users\\AppData\Roaming\MikroTik\WinBox

Ideally, WinBox should at least offer the option to write this data to a folder or folders next to winbox.exe so it can run off a USB stick without writing anything to the system partition. For example, the presence of a file named "portable.txt" next to winbox.exe could be used to instruct WinBox to read and write session data, etc, locally. Alternatively, a command-line option, e.g. -portable, could be used instead.

Technically this should be easy to implement and I think a lot of users would welcome it.

If you don't post it in the designated topic,
or if you post it here without opening a support request, it's basically useless.

What's the designated topic? I couldn't find a WinBox forum section.

You can create portable windows application with some of available tools, see for eg. Enigma Virtual Box

Thanks, but that's not what I'm looking for. This should be native, no need for extra software.

To honest it rare to find stateful portable app by design for any system.

An app can be portable and stateful, in fact, a large number, if not most, portable apps are stateful. The difference is where past state data is stored.

You should be able to set the local APPDATA environment variable to a folder on your USB drive before you launch WinBox to get the result you’re looking for. I’m a Mac guy, so I can’t say it will work for sure but it’s worth trying.

Maybe you misunderstood me, when app is made as portable by design, yes state files are saved in relative path of application, but I think it is rare to find apps that are developed as such (in most cases to have ability to save state per user logged in into OS but to be installed globally to save space), most apps saves state in some system provided directory for it (or registry in Windows, depends on app). In some cases it's possible to wrap app launching with script that overrides some env. variables as @ghostinthenet mentioned, but in cases for Windows where registry is used then you need some launcher app that injects into app and overrides system API calls to save/get registry data from alternative file.

There is a solution to that:

1. install Winbox into \AppData\Roaming\MikroTik\WinBox
copy Winbox.exe "%USERPROFILE%\AppData\Roaming\MikroTik\WinBox\Winbox.exe"
2. Create directory links
 mklink /J C:\Mikrotik "%USERPROFILE%\AppData\Roaming\MikroTik"

 mklink /J C:\MikroTik\WinBox\Cache "%USERPROFILE%\AppData\Local\MikroTik\WinBox\cache"
3. Now you have a single Directory for all Winbox related files together in one place. To backup Winbox with all its files, point your backup software to:

C:\MikroTik

NOTE 1: Deleting C:\MikroTik DOES NOT delete the destination files. Only the link is deleted.
NOTE 2: Files copied to C:\MikroTik are created in C:\Users\..\AppData\Roaming\MikroTik

A portable app (actually a program) to be REALLY portable should - if run from a removable media such as a floppy disk :wink:, USB stick, or similar - leave NO trace whatsoever on any of the non-removable media of a PC.

Anything else is "almost portable".

This is 100% correct. That said, I can tolerate unimportant temp files as long as configuration and session data is stored relative to winbox.exe.

I'm currently using symlinks, which is similar to that solution. Of course, I prefer a truly portable app.