HyperWrite - Consultancy and Training 

Help Systems, Structured Authoring, DITA, Hypertext, Documentation Technologies

HyperWrite Logo
Skip Navigation Links
Skip Navigation Links

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 be avoided.

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.


LinKit! Manager

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.


Trying It Out

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 approach.

Screen capture
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.

Screen capture
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.

Screen capture
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.

Screen capture
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.


LinKit! Activator

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.

Screen capture
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.


Pros and Cons

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

Valid XHTML 1.0 Transitional Valid CSS!


HyperWrite provides training in a number of authoring software tools, and in structured authoring, technical writing and Help authoring techniques. Find out more...