[WFX] VirtualPanel: Temporary panel for TC

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: Hacker, petermad, Stefan2, white

Post Reply
jmwap
Member
Member
Posts: 121
Joined: 2008-03-23, 12:40 UTC

Post by *jmwap »

Hi,

Let's see if I can overcome this issue I'm facing. I have my TC installation under dropbox, so when I add a new plugin or change some configuration param I don't need to do it in all 3 hosts I use.

So far it is working perfectly, all plugins I am using work without issue (in the end it's quite easy just using some envvars to hide where some basic folders are in each host).

When using VP, it only works partially:
1. in host A I installed VP and configured it, by adding couple of virtual folders, defining a >Refresh to populate them etc.
2. I shutdown A, go to host B, let dropbox sync and start TC. I can go to \\Virtual Folder, but it is empty, I can copy a file to it, create dirs etc, but my >Refresh script is not there, and neither are my folders.

I guess (this is a wild guess cause I know nothing about how it works internally) VP is storing the info about folders and scripts in some place that is outside TC dir and so not beign sync-ed by dropbox?

I am not using %TEMP%\VirtualPanel.lst yet (as I still have not investigated it), but I understand it is not needed cause in host A I got my folders and scripts when I restart TC so they must be stored somewhere...

any ideas how this could be achieved?

thanks!
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

You may choose any location for VP state file, %TEMP%\VirtualPanel.lst is just default path (it wasn't made in plugin folder because of possible write restrictions to program folders). Then I think you need to setup your sync tool to sync this file.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

PhBa wrote:Is-it possible to add/put URLs in the virtual panel :?:

Of course, we can link any URL to the virtual panel.
Then
- a page with the html extension can be opened by double clicking on the link
- other pages can not be opened from the virtual panel

In all cases, the links appear with the 'Removed folder icon'

Best wishes
How you're adding URLs to VP? TC doesn't allow to drag anything external to VP, just internal objects - but internal objects can't be URLs.

BTW you may add URLs as scripts - just specify a command to open URL in your browser (link to browser's EXE should be within VP). You may also use any icon then and create buttonbar button to add URL to VP.
PhBa
Junior Member
Junior Member
Posts: 14
Joined: 2009-01-12, 13:47 UTC
Location: France

URL links in VP

Post by *PhBa »

As I said to you, I would like to use VP as a workspace: so, I need to bring together various folders / files. Some of these files are only accessible by HTTP...

To be compliant with TC and VP:
- first, i create a Windows link (an .url)
- then, i copy this one into VP
As result:
- the VP link is displayed with its icon (minor problem: this is not the icon defined into the Windows link; TC has also the same limitation)
- I can open the VP link into my Explorer by double clicking :D
As you see, this process requires the creation of a link on my computer...

I would like to be able to directly create the VP link... with a specific command ('<addurl' for example), because the current '<add' command does not work properly with URLs (display problem ; and, execution problem due to a TC limitation)

What do you think about this idea :?:
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

<add command allows to add only existing files.
If you want to have additional command, you may write a simple script for it, e.g. you may use such \>addurl script:

Code: Select all

<ifdef %2 { <add >%1 { <exec \MyFavoriteBrowser.exe %2 <<shell32.dll,123 } <exit }  <ifok {Please specify two parameters: link name and URL. Link will be created with < prefix.} {}
You may specify any icon instead of sample shell32.dll,123. Don't forget to add IE executable as \MyFavoriteBrowser.exe before using links.

The only problem is that links with % characters won't be opened correctly because of expanding environment variables.
PhBa
Junior Member
Junior Member
Posts: 14
Joined: 2009-01-12, 13:47 UTC
Location: France

URL links in VP

Post by *PhBa »

I'm not used to play with your '<exec' command...
Not intuitive... but, thank you I will use it 8)
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Great if it is enough for you :)
PhBa
Junior Member
Junior Member
Posts: 14
Joined: 2009-01-12, 13:47 UTC
Location: France

URL links in VP

Post by *PhBa »

MVV wrote:Great if it is enough for you :)
I removed the '<exit' command; and, I surrounded the second parameter of '<ifdef' with {}... this removes an alert window !

Code: Select all

<ifdef %2 {<add >%1 {<exec \MyFavoriteBrowser.exe %2 <<shell32.dll,242}} {<ifok {Please specify two parameters: link name and URL. Link will be created with > prefix.} {}}
Tested... work fine :D

Why you cannot expand environment variables ?

Thanks again for this great addons...
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

I've used <exit to remove second block - such script is easier to read IMHO. Anyway, I would prefer this case:

Code: Select all

<ifdef %2 {} {<ifok {Please specify two parameters: link name and URL. Link will be created with > prefix.} {} <exit}
<add >%1 {<exec \MyFavoriteBrowser.exe %2<<shell32.dll,242}
(firstly exit condition and action, and then rest script part)
Why you cannot expand environment variables ?
VP can expand envvars and does it - that's why it breaks URLs with mulitple % chars - system function that expands envvars treats characters between nearest % chars as envvar name and expands it even if is undefined - so it returns e.g. forum/361-bcbeb4 for forum/361-%d0%bc%d0%be%d0%b4%d0% (of course if envvar d0 is undefined).
PhBa
Junior Member
Junior Member
Posts: 14
Joined: 2009-01-12, 13:47 UTC
Location: France

Environment variables

Post by *PhBa »

Hello MVV,

It seems to me that the environment variables are expanded:
- at creation time for the links,
- at run time for the script.
Am I right ? Why these 2 behaviours ?

For example, I noticed that we can add link as a script : <add foo {% TEMP%\...}... this link is not expanded in the lst file :) but, it is broken and unusable in VP :(

Because, I use TC and VP on an USB device, I need to use 'dynamic' links on several resources. Of course, I can write a script to rebuild these links...
but, I think that it is not a friendly trick !

What do you suggest?
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

VP expands envvars in commands to be executed (incl. script commands), but if you enclose script parameter with braces {}, it will be left as is (however it will be expanded anyway during execution) - that's why script file is created w/o expanded envvars. Unfortunately we can't forbid envvar expansion during execution.
PhBa
Junior Member
Junior Member
Posts: 14
Joined: 2009-01-12, 13:47 UTC
Location: France

Environment variables

Post by *PhBa »

MVV wrote:VP expands envvars in commands to be executed (incl. script commands), but if you enclose script parameter with braces {}, it will be left as is (however it will be expanded anyway during execution) - that's why script file is created w/o expanded envvars. Unfortunately we can't forbid envvar expansion during execution.
So, no friendly solution !

If my linked resources depend on an envar (variable whose value can change from one computer to another), i need to rebuild the VP links (with a script) with each change of computer :o
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Another problem is that % char must be doubled in script file because it is parameter char (e.g. %1 will be replaced with first script parameter in %1f%df like in usual batch file).

BTW you may use external tool that will double percent chars in command line and then call VPBatch to add script. The only problem is to get such simple tool:) and to create script that will execute it with right command line.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

PhBa, you may use this VPAddUrl.exe for your task:

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="VPAddUrl.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="VPAddUrl.7z"

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
IAgAAAAA

Decode and unpack archive with TC. Then put VPAddUrl.exe to VP folder and then add to VP e.g. as \addurl (virtual name of application link may be w/o extension and this will work - VP will execute it by real path anyway). Then rename or copy \>addurl to >addlink (VPAddUrl will start script with such name and pass right URL to it). You may call \addurl directly with link name and URL or you may create additional script that will call \addurl.

E.g. to add URL with name >mylink that points to http://bla.bla.bla/%fe%45%33 you may execute command \addurl mylink http://bla.bla.bla/%fe%45%33.

Don't forget that you may use VPAddUrl.exe even from buttonbar button - it will pass command to VP anyway (VP must be loaded of course). If you don't specify full path to link name, it will be created in last opened VP folder.
PhBa
Junior Member
Junior Member
Posts: 14
Joined: 2009-01-12, 13:47 UTC
Location: France

VPAddUrl.exe

Post by *PhBa »

Thanks a lot :D Your tool decodes properly the URLs containing escape characters...

One small remark: I set the auto-refresh when the files are created... but, I need to manually refresh the list for the new links to appear. I noticed this same behavior with the addition of links from the toolbar !
I will suppose: due to the using of an external executable.
Post Reply