LinKit! - An Alternative to Context Hooks
Review of Affixion LinKit! version 3.0
by Tony Self, Director - HyperWrite
I must declare that I would be happy if there was no need for Help
context-sensitivity utility software such as LinKit!. According to Affixion,
developers of LinKit!, "no interaction with the programmers developing the
application is necessary". If I were a cynical Help author, I would say
that the less contact with programmers the better, but in reality, the greater
the teamwork between programmer and author, the better the software product will
be. But of course we don't live in a perfect world, and there are many reasons
why Help authors may not have access to application programmers.
LinKit! is a Windows software utility that provides a bridge between a
software application and its Help. It runs in the background, listening to the
applications running in the foreground. When a user requests Help, LinKit! looks
up a table of application windows and related HTML Help topics, and displays the
applicable topic. The Help author maintains this database of windows and their
related Help topics.
As such, LinKit! is not a Help Authoring Tool (HAT) in any respect. It is an
end-user Help delivery tool. It works with CHM files produced by any HAT.
LinKit! can be used to link custom Help systems to shrink-wrapped software
products, so that, for example, Help specific to a company's use of Microsoft
Project could be linked to Project. Or Help could be created for a company's
accounts structure to support staff using QuickBooks. You might also use LinKit!
to deliver Help in different languages for a non-localised application. LinKit!
may also find a place for those software development projects with tight budgets
or tight deadlines, where the time fiddling with context hooks and map files can
There are two parts to the program. The first part is LinKit! Manager, which
the Help author uses to create the context relationships between application
windows and Help topics. The second part is LinKit! Activator, which is the
runtime application that activates the Help topics. Obviously, LinKit! Activator
has to be distributed to all users, and a runtime licence for 20 users is
incorporated in the standard product.
The tool that the Help author uses to define the Help topics to be linked to
the software application's windows is called LinKit! Manager. It is a very
slick, and easy to use. The embedded user assistance for the Manager program is
especially useful. The first step in the process is to create a project file to
store the relationships. The next step is appropriately called "collecting
windows". This involves starting the application you are creating the links
for, moving to the windows and dialog boxes one by one, and dragging a crosshair
icon from Manager to the specific application window. As you are collecting
windows, their names are added to LinKit! Manager's Applications folder. The CHM
files to be used must then be nominated: a task as simple as browsing for the
file. Once a CHM file is selected, it is added to Manager's Help collections
folder, from where you can view a list of all the topics within. The final step
in the process is to use the Manager interface to drag the topics from the Help
files to the associated application window.
I found that initial step of creating the project to be very straightforward.
LinKit! project files are stored with a .lkxml extension. As the file extension
implies, the project information is stored in an XML format, which is a wise
Figure 1 - Creating a New Project in LinKit! Manager
Click the image to see a larger image
The user assistance made the tasks to define the relationship between
application windows and Help topics easy to do.
Figure 2 - Embedded User Assistance in LinKit! Manager
Collecting windows was a simple process that ran smoothly. When the Collect
Windows link was followed from LinKit! Manager, a Procedure Steps pane displayed
on the Windows desktop, and all running application windows were resized to
accommodate the pane. Collecting was a matter of opening the relevant window or
dialog box in the application to be supported, and then dragging a crosshair
icon from the LinKit! pane to the window. A green border appears around the
captured window to make it clear which window was being collected. A red border
displays if you attempt to capture the same window twice.
Figure 3 - "Collecting" a Window in LinKit! Manager
After returning to LinKit! Manager, the collected windows are listed in the
Applications folder, categorised by software application. I had captured windows
from Microsoft Word, and a page from a Web application. Accidentally collected
windows can be deleted easily from the Manager window. LinKit! uses the window
title as the unique key for a captured window. For particular requirements,
these window titles can be modified with wildcard characters to allow Help to be
defined for a generic set of windows. For example, the window title of the main
Microsoft Word interface is <documentname.doc> - Microsoft Word. To link
Help to this main window, rather than to a particular document, you can define
the window title as *.doc - Microsoft Word.
Nominating one or more Help files to support the collected windows was a case
of browsing for the relevant CHM files. Selected files are added to the Help
Collections folder in the Manager window. LinKit! only supports CHM as a Help
format, and not other formats. It was a little disappointing to find that I
could not define local or Web-based HTML files as an alternative. There is good
news on the horizon, though, with the next release of LinKit! promising to
support CHM, HTML, and WinHelp.
Figure 4 - LinKit! Manager's Project Pane After Collecting Windows and
Nominating Help Files
The penultimate process is to associate the application windows with Help
topics. Again, this task is made simple with the embedded user assistance. When
a Help file is selected from the list of Help collections, the topics within the
file are listed in the centre Details pane. A topic can be dragged from that
pane onto the corresponding window name in the Applications folder to make the
association. (You can add more than one topic to an application's dialog box or
window. When the user requests Help for that window, a popup window will list
the associated Help topics.)
LinKit! is very flexible in that topics from different CHM files can be
associated with windows in the same application.
When you are ready to test your new context links, you "publish"
the project. This creates the database of links, stored in an encrypted .lka
file, and copies that file, the LinKit! Activator installation file, and the CHM
files required to a nominated publishing directory.
For my project, following the Publish link in the Manager window resulted in
a prompt for the location to publish to. This might normally be a folder on a
shared network drive, or a temporary folder. I encountered my first area of
confusion here, as it was not clear to me whether a new folder would be created
during the publishing, and the location field displayed a cropped folder name.
In fact, the .lka distribution data file is saved to the nominated folder, and
the CHM files are copied to a new sub-folder with the same name as the project.
The distribution files must then be distributed to users. In some cases, the
files will be bundled into the application installation, but in most cases (ie,
for Help that is created entirely separately from the application), this will
not be the case. Unfortunately, the publishing and distribution process is not
ideal. It turns out there are two steps involved: installing the LinKit!
Activator program onto the user's PC, and then installing the project files (.LKA
and CHM files) onto the user's PC. The distribution process would be much better
if only LinKit! could generate a single .EXE or .MSI file; but, regrettably, it
does not yet do this. (Affixion advise that this facility will be introduced in
a future version.) In the short term, it is necessary to copy the LinKit!.MSI
(Windows installation) file from the LinKit program directory on the author's PC
into the publishing folder, and then distribute the entire folder contents to
the end user.
LinKit! supports multiple languages, so it is possible to define Help topics
for different language versions of the same application, within the one project.
This is be particular benefit for many multi-lingual European companies, where
Help might be delivered in English, for example, but individual users are using
specific language versions of applications. (Remembering that LinKit! stores
relationships by window title, it is obvious that different language versions of
applications will have different window titles.)
The Help for LinKit! Manager itself is excellent, being comprehensive,
well-designed and aesthetically pleasing.
Using a LinKit! connected Help file is very straightforward. When the user
needs help within an application, instead of pressing [F1] he or she clicks the
LinKit! icon in the system tray. The corresponding Help topic is then displayed.
As an alternative to the system tray icon, a function key can be nominated as
the LinKit! Help button.
Figure 5 - The LinKit! Activator Icon in the System Tray
Configuring the Activator is a bit clumsy, bearing in mind that end users may
be the ones performing this task. The user must start Activator, right-click on
the Activator icon in the system tray, open the project file, and then select
some startup options. One of the startup options is whether the current project
file will be automatically opened in future.
A limitation of the Activator program is that only one project can be opened
at a time. So in some circumstances, configuring the HR system Help might
disable the Account Receivable system Help. This problem can be readily overcome
by co-operation between LinKit! users in the same company, working together to
create one project file that covers all applications.
I wasn't able to test what impact the running of Activator had on other
applications, but can only report that during my evaluation, I did not detect
any noticeable degradation. The Activator program itself is a small 300 kb, so
is unlikely to create resource problems. The Help for Activator is, as for the
Manager component, excellent.
During my evaluation, I encountered no bugs in the utility. However, the
publishing process did fail on one occasion when a referenced CHM file was
marked as read only. The error message was sufficient to allow me to isolate the
problem and fix it.
LinKit! is the most recent product in this category, although its competitors
seem to have faded from the scene. The Israeli company Live Linx offered a
similar WinHelp utility some years back, and more recently, eHelp briefly
offered the RoboLinker product.
One of LinKit!'s deficiencies is that it only permits context-sensitivity at
the window level, and not at the field level. Another is that it is limited to
displaying CHM topics only.
Context-sensitivity is commonly viewed as too hard, and LinKit! offers an
alternative to context IDs and map files that may be attractive to some.
However, its biggest market will be to allow previously "unlinkable"
applications to be provided with a context-sensitive Help system.
LinKit! will be an extremely useful product for those requiring custom Help
systems for third-party software applications. The LinKit! solution is
well-presented, slickly presented, and is easy to use for both author and
end-user alike. The cost of the product is set at 349 Euro (including 20
distribution runtime licences). Additional distribution licences are 5 Euro
each, with an unlimited distribution licence costing 500 Euro. Most users will
require an unlimited licence, which makes the typical outlay 849 Euro, which is
a bit on the high side. But it is easy to see how the functionality of the
product can quickly recoup the initial outlay.
Product: Affixion LinKit! ver 3.0 with 20 user licence
Date Reviewed: March 2004
Price: €349 (approx USD430)
Product Web Site: www.affixion.com