The simplest computer setup is when you install programs on your local machine and run them. It gets more complicated when programs are installed on machines on the network and then you run or deliver the programs over the network.

(This is not the same as installing programs over the network. That just means you use the network to install the programs on all the machines, just like you went round with a DVD and did it individually. So just because there is a network involved, it does not mean that you are trying to run the programs over the network. If you are trying to install programs over the network see our other Network articles for your version of Windows Server.)

When you are running over the network your machine is the client and the networked machine where the program lives is the server. You will be using a system like Citrix, or Microsoft’s Remote Desktop Services (also known as Terminal Services). You may also be using a thin client – some or all of the software you are using is on the remote server, not your local machine. Or you may be using a virtualization system like App-V, where the program is never installed on your client machine but does run there.

There are three ways to run programs over the network:

1 When you create a window that contains a whole desktop, running on the server.

This is just like running a virtual machine image. You use applications completely within the window. This is called Remote Desktop, or Remote Desktop Connection, or Microsoft Terminal Service Client, or mstsc. Remote Assistance is a limited version for doing support. TeamViewer and Frog are non-Microsoft examples.

In this case applications run normally within the window, so everything interacts correctly. If ClaroRead and Microsoft Word and the SAPI5 text-to-speech voices are installed on the Remote Desktop machine they will work together normally. You cannot use ClaroRead within the Remote Desktop to access anything on your host client machine. It all works only within the Remote Desktop.

This is all you could do with Windows Server 2003.

2 When you run the program so it looks like it is running on your client desktop but is really running on the server.

This is a more complicated set-up introduced in Windows Server 2008. Instead of running a Remote Desktop and working inside it purely on the remote machine, the individual programs you run can be run from the remote machine. So in this case you might be using ClaroRead from the server but working with the installed Microsoft Word on your own client machine, or even the other way round. You do not have the whole remote desktop on your machine, just one or more program. This technology is called RemoteApp.

The program will look to the end user just like it is a normal installed program. There will be shortcuts and it will work with the local files and settings. But it is not really running on your local machine.

This affects how ClaroRead works. In general, ClaroRead and Microsoft Word must be able to communicate with each other, whether remote or local. This is simple if both applications are running on the remote machine, or both are running on the local machine, but complicated if one is local and the other on the server. The key factor is not where each program runs, but whether ClaroRead can meet the ClaroRead Requirements below. If you can configure your think client system to meet these requirements, then ClaroRead will work.

3 When a program isn’t installed on your client desktop but downloads and runs from the server when you need it.

This is the App-V model and is a different set-up again. In App-V, programs are not installed on client machines, but packaged up by the system administrator to run as separate “packages” that do not need installation. When a user needs to run the program the package is delivered by the server and run on the local machine – but not installed, just run. This is a system of virtualization.

In this situation, it is perfectly possible to configure ClaroRead to work either from the server or from the client. ClaroRead must be able to operate according to the ClaroRead Requirements below.

ClaroRead Requirements

To operate fully, ClaroRead needs to be able to perform the following interactions with other applications. This is not an exhaustive list of every API call, but a high-level checklist that should help you understand ClaroRead’s interaction with other software so you can set up your virtualization or client/server system correctly.

  • Access Microsoft Word through COM to use the Document Object Model (for reading with highlighting and spell checking)
  • Access Adobe Reader or Acrobat Reader DC through COM and MSAA to use the Adobe Accessibility Interface (for reading with highlighting)
  • Access SAPI5 through COM (for text-to-speech – alternatively we can provide voices to run from the program folder.)
  • Access Internet Explorer through COM (for reading with highlighting)
  • Use Windows API call SetWindowsHookEx to use low-level key and mouse hooks (for reading on select, echo typing)
  • Access MSAA (UIA) to use many other object models (for Dragon echo, speak under mouse)
  • Access OpenOffice or LibreOffice through COM to use their Document Object Models (for reading with highlighting in OpenOffice/LibreOffice).