| Q: | Do we have to pay additional royalty fees for EXE files that we distribute and that use the ShellBrowser .Net Edition ? |
| A: | No. The ShellBrowser components are royalty free. That means after you purchased them, you may distribute compiled projects without additional costs or fees. |
Q: How much is a single workspace licence ? Will I get a CD or do I have to download the program with a product key ?
A: Usually, our customers download the software in the customers area. If you want to have a CD, we will gladly provide you with a CD for a small fee. Please refer to our price list for further information.
Q: How can I order ShellBrowser .Net Edition and how will it be delivered?
A: You may order online at https://www.jam-software.com. You will find a fax order form there as well. We accept purchase orders from companies and will invoice them on NET30 terms. After your order is processed, you will be able to download the full version of the product in our customer's area. If you choose to receive the software on CD, shipping costs will be added to your order. You will then receive the software by air-mail within 2-7 days, depending on where you are located.
Q: What is the difference between the evaluation copy and the full version? Will there be additional features?
A: The evaluation copy allows you to test the software before you buy it. The evaluation time is limited to 30 days. Further usage of the software after this period is not permitted and violates the law. In order to allow our customers to fully test our software products, our evaluation versions usually do not contain significant limitations. But the software may remember you from time to time to purchase it after your testing is finished.
After purchasing the full version, registered customers will receive free updates within the current major version.
Q: Why don't you use activation codes that turn the trial version into a full version?
A: We do not work with activation codes because you can find them very easily on the internet. We are working with separate trial and full versions. After purchasing our software, customers get an account for our customer's area where they can download the full version for at least 12 months. We will also send a CD at additional cost. Our customers will also receive an installation key, which will be necessary to install the full version. You should keep both in a safe place. Installing the full version over the trial version will preserve your existing data and settings.
Q: I installed .Net Framework 4.0 but ShellBrowser's target Framework is .Net 2.0. Can I use it anyway?
A: ShellBrowser does not include any code that is specific for one of the .Net versions. So you can use it without changing anything.
Q: I have the trial version installed and want to buy the full version. How can I keep the data that I already have entered?
A: All settings and data you entered in the trial version will be available in the full version.
Q: I’m a registered user of ShellBrowser .Net Edition. My computer has crashed lately and I had to retrieve the set up files from your customer area again. But I don't know my installation password anymore. Can you please help me?
A: If you log into the customer area, you will find you installation password in the upper left, below the Download button.
Q: What is the precise difference between a single user licence and a 5-user licence?
A: Single user licenses are meant for single workspaces and personal use, multi-user licenses allow to use multiple installations of the software at the same time and they are cheaper than the same number of single user licenses.
For further information on licenses, please visit: https://www.jam-software.de/customers/licenseAgreement.php
Q: Are the components native .Net code?
A: The components are written in pure C# directly accessing the Windows Shell-API. The library is not a wrapper around the ActiveX component we also offer.
Q: Is the source code also available for download?
A: You can purchase the full source code as well. It contains approximately 640kb well documented .cs code.
Q: Is ShellBrowser.Net stable for production use?
A: The components have been ported from our well tested Delphi code base. This mature library is in use since 1998. A lot of bug fixes and issues have been solved and are the reason for the efficient and high-quality production implementation for the .Net-Framework.
Q: Is the Source Code in C# ?
A: Yes, the source code of ShellBrowser .Net edition is entirely written in C# We use Visual Studio 10 for development but it is also suitable for Visual Studio 8, 9 and other .Net Development Environment
Q: Does your product require any DLL dependency?
A: We have no dependencies to third party DLLs. We are only using functions that are part of windows ( e.g. shell32.dll )
Q: Do you provide a 64 bit version of ShellBrowser .Net Edition?
A: We do not provide special 64 bit versions of our software, but since this software is written in pure .net language it runs natively on 64 bit systems. Provided that your application using the components is deployed as "Any CPU", it will run as a real 64 bit task.
Q: I have installed ShellBrowser.Net, but the components do not appear in the Toolbox of Visual Studio, what have I done wrong?
A: There's nothing wrong with that. Sometimes e.g. when installing ShellBrowser and VS is still running, the installer may not succeed in adding the components to the Toolbox of Visual Studio.
To add the components manually, hit the right mouse button on the toolbox, select Choose Items..

Then click "Browse" in the .Net tab, navigate to the folder that contains ShellBrowser.dll and choose it. You will see the new components marked, and with version information.
Click OK to add the components to the Toolbox.
Q: I have installed the ShellBrowser.Net components to a network drive, i get an error if i try to create a project using the ShellBrowser.Net components whenever i add a ShellBrowser component to a Form. Why doesn't that work?
A: The .NET Framework has security features enabled by default which permit to open libraries or programs from a network share.
If you like to use programs or libraries from a network share you need to set the permissions accordingly. For a developer system it would be ok to set the "Permission Set" of My Computer/Runtime Security Policy/Machine/Code Groups/All_Code/LocalIntranet_Zone in the .NET Framework Configuration to "FullTrust". To set up a correct security profile otherwise, please consult a system administrator if you plan to deploy your application to network drives.
Q: How do I make a context menu work with the ShellListView or ShellTreeView?
A: I'm using VB2005 and have created a context menu. I've set it as the context menu for the Menu, the ShellHistoryToolStrip, List and Tree views. When I right click on the menu, HistoryToolStrip, or the blank space inthe List or Tree views, the menu displays. When I right click on a file or folder, the regular Windows Explorer context menu appears without having merged mine. What have I done wrong?
Before version 3.0.2 it was necessary to set the hidden property "ContextMenu" to the context menu that should be merged with the shell context menu.
From version 3.0.2 of Shellbrowser the ContextMenuStrip property is supported. It is converted to a ContextMenu instance which is a wrapper of the Windows Shell-API and therefore can be merged with the menu provided by the operating system, including the extensions of third-party applications.
The OnOpening and OnClosing events are mapped to the Popup/Collapse events respectively. Other events provided by ContextMenuStrip are not triggered.
A menuitem of course provides the OnClick event.
Furthermore, a new property "BackgroundContextMenu" has been introduced for the ListViews of ShellBrowser. It is displayed if the user clicks the right mouse button without having an item selected. A real ToolStripMenu instance can be used here with all events that it supports. It is however recommended to set the RenderMode property to "System" to keep the look & feel consistent with the shell context menu.
Q: Hello, I'd like to retrieve the target of a link when I use the ShellBrowser component, could a method be added for this (currently it's only possible to retrieve it if it's a folder)?
A: Since version 3.0.2 of the ShellBrowser components it is now possible to retrieve the target of a windows shortcut link. Just call the static method
string ShellBrowser.GetLinkTarget(string shortcut);
and it will resolve the link. If it is not a link file (ie. a normal file or folder) it will return the empty string "", and null on error.
Q: Is there a way to set the path that the tree displays? I want to show a particular folder when the tree initializes.
A: You can either set a special windows folder by setting the RootedAt property:
this.shellTreeView1.RootedAt = Jam.Shell.ShellFolder.Desktop;
Or at your option, you can specify a system path the ShellTreeView component will display:
this.shellTreeView1.RootedAtFileSystemFolder = @"c:\windows";
Q: The FullRowSelect does not work for the ShellTreeView, what's wrong?
A: Disable the ShowLines property to enable the full row selection. This needs to be done for all classes deriving from TreeView in order to get the expected result.
Q: I set a different background color to the ShellListView, the focused item shows a different background in the columns next to the first one.
A: This happens for all .Net ListView components which have the OwnerDraw property set to true, but delegate the OnDrawItem call to the base class like ShellListView does.
A workaround to this behavior is to enable the FullRowSelect property.
Q: How can I access the files that where selected by the user via the Checkboxes functionality?
A: In the ShellListView or ShellTreeView do not provide a property for this. Instead the ShellControlConnector component that mediates the checkbox state between different controls in particular has the property "SelectionList" which allows to iterate through the list of selected items.
Q: Clicking check boxes in a ShellFileList the first time is extremely slow and the next time completely freezes my application. Is there any explanation for this behaviour ?
A: For folders containing many files and subfolders the process of collecting file information (e.g. overall size) can take a while. If you'd like to suppress the scan you can set the CalculateSelectedFiles property in the SelectionList to false.
This will suppress fetching the overall filesize, etc.
Here is an example on how it looks like in the JamExplorer application:
private void recursivelyScanSelectedToolStripMenuItem_Click(object sender, EventArgs e)
{
//switch the calculation mode:
shellControlConnector1.SelectionList.CalculateSelectedFiles ^= true;
recursivelyScanSelectedToolStripMenuItem.Checked =
shellControlConnector1.SelectionList.CalculateSelectedFiles;
}
Q: I'm setting the "Path" property of e.g. the ShellListView to a constant value like c:\windows when developing my application, is that ok and considered good style?
A: In general it is better to use only the SpecialFolder to explicitly set a path. The Path property is meant to be used to set the displayed path dynamically when the application is running on the system it is deployed on.
It can't be assumed that throughout different systems there's always an existing path 'c:\' for example.
Q: Why is the use of the property ListViewItem.Caption discouraged?
A: Depending on the Windows Settings this property might not contain the complete file name but one with the extension cut off.
Instead, use the ShellListItem.FullPath property, it contains the full path to the file represented by the item.
The function Path.GetFileName(string path) gets you the full and pure file name and omits the path.
Q: How can I prevent an item to be activated when the default activation action is executed in the ShellListView? I' don't want the file to be opened, I only want to select the item.
A: Have a look at the JamExplorer example, here a MessageBox is shown to ask the user whether he really wants to open a file. The event is called "BeforeInvokeCommandOnSelected".
Q: How can I extend the background context menu of the ShellListView with additional items, is it possible hide default items?
A: Have a look at the JamExplorer example, here we override the BackgroundContextMenu class and add an additional ToolStripMenuItem in the SetupMenuItem method. To hide a default item, you can simply set its Visibility property, see the API of the BackgroundContextMenu class to get an overview of the defined Properties.
class MyBackgroundContextMenu : BackgroundContextMenu
{
protected override void SetupMenuItems()
{
base.SetupMenuItems();
Items.Add(new ToolStripMenuItem("My Additional Item"));
//hide a default item:
this.Actualize.Visible = false;
}
}
public partial class JamExplorerMain : Form
{
public JamExplorerMain()
{
InitializeComponent();
shellListView1.BackgroundContextMenu =
new MyBackgroundContextMenu();
}
...
}

