+1
Under Review

Associate dll with toolbox item

cps 2 years ago updated 1 year ago 3

One of the nice features of the Toolbox is to be able to add a portable executable. This is great provided that the executable is completely self-contained, however in many cases the tool might require one or more DLLs or other components. It would be great to be able to have a mechanism to associate a group of files to be downloaded to temporary space when a tool is invoked, so the tool can use them.

As an illustration, in the documentation for the recently released Backstage feature, it is suggested to add Explorer++ to the toolbox to provide a file manager within the Backstage mode. That's a great idea, except Explorer++ has a tendency to crash frequently, and it does not offer side-by-side panels. A superior alternative is a tool called Just Manager, which is a free portable file manager that does not crash in Backstage, has side-by-side panels, and is about a quarter the size executable. But the Just Manager exe program relies on a small DLL called IconPack. As such, if you simply click on Just Manager in the toolbox it will fail because the DLL is missing.

Now, it turns out that if you also add the IconPack.dll to the toolbox, and click it prior to clicking on Just Manager, ScreenConnect downloads the DLL to temporary space and subsequently if you click Just Manager it can find the DLL and run normally. However although this approach works, it is messy and not scalable, as there is no way for a user to know which DLLs go with which tools in the toolbox. What would be better would be to automate this process and hide the detail from the user.

One possible mechanism would be to encapsulate the files into a .zip, and add the .zip to the toolbox rather than the individual files. If such a toolbox entry is clicked, ScreenConnect downloads the zip file to the temp area, unpacks it, and runs the executable that has the same name as the zip file. So for example we could have justmanager.zip which contains both justmanager.exe and iconpack.dll (and perhaps other related files like a help file). ScreenConnect would unpack the whole thing into the temp area and then run justmanager.exe.

Available in Version:

Hi cps, 

Control provides a method to do this -- you would use the .scapp feature of the toolbox. Check out this forum post for more information. 

Hope this helps!

Excellent, that works and is almost exactly the solution I was suggesting.


For the reference of future readers, the forum thread linked above was not that useful, but this blog post described the feature:


https://www.connectwise.com/blog/product-tips/exploring-the-scapp-file


To test, I did the following:


  1. Created a zip file called JustManager.zip in the toolbox folder.
  2. Added iconpack.dll and JustManager.exe to the zip file.
  3. Created a batch file _JustManager.bat with one line to execute JustManager.exe.
  4. Renamed JustManager.zip to JustManager.scapp.
  5. Opened a remote Backstage session and clicked on JustManager.scapp in the toolbox.

Worked like a charm. Thanks for the tip.

ps. Anyone interested in JustManager as a Backstage-compatible file explorer can find it here: http://justmanager.ru/. You will want the portable version.