Last updated: 16 February 2000
It is possible to install AniTa on a central server in a network. This central server can be a Windows server or even a UNIX machine running Fusion95. This is especially useful in larger installations.
It is not necessary to install AniTa on every PC that is going to run the software. Instead you just install AniTa once on the central server and then add a link from each workstation to the AniTa software on central server. The link would normally be from the workstation's desktop and/or start menu.
The license codes are installed on the central server, and these apply to all workstations; one license is still needed for each workstation that will run AniTa.
When it is desired to install a newer version of AniTa, you only need to upgrade the central server and then all workstation have access to the new AniTa software.
If one or more generic configurations are to be used by all users, then these can also be placed on the central server. Alternatively it is possible for users to place their individual configuration files on their local workstations. A combination of local and server-based configuration files is also possible.
The system administrator can make the AniTa installation on the central server read-only, to protect it from accidentally being changed or deleted. Normally only the system administrator would have write access to the central server, being able to upgrade AniTa or change the generic configuration files.
A problem can occur when running the 16-bit version of AniTa in a 32-bit version of Windows which has Internet Explorer 5 installed. We strongly recommend running the 32-bit version of AniTa (version 4 or later) when running on a 32-bit version of Windows in order to avoid these problems.
This applies to AniTa version 3.5.0 (and earlier). The problem occurs when connecting via TCP/IP. AniTa 3 will still run over NetBIOS and asynchronous connections, even with IE5 installed.
When Windows has Internet Explorer 5 installed, the 16-bit socket interface used to access TCP/IP is changed.
When AniTa attempts to connect via TCP/IP the following error will ocuur:
ANITA caused a General Protection Fault in module ANITA.EXE
AniTa version 4 (and later) are 32-bit programs and are not effected. To permanently resolve this problem, use the 32-bit version of AniTa when running on a 32-bit version of Windows.
This problem is resolved in AniTa version 3.5.1
DDE can be used to communicate between AniTa and other Windows applications. Thus a Windows application that could not normally communicate with the host computer, can use DDE and let AniTa perform the communication.
AniTa has two kinds of DDE functionality. It can be configured to work as a DDE server, as a DDE client or as both.
Samples of Visual Basic programs to work with AniTa can be found on our internet server located in the directory: ftp://ftp.april.se/pub/anita/dde
AniTa's DDE client capability lets you define a 'start' and a 'stop' string that are scanned for in the host output. When the start and stop strings are received from the host, AniTa connects to a DDE server enabeled Windows application, pokes the data between the 'start' and the 'stop' to the application and disconnects the DDE session. AniTa collects a maximum of 10,000 DDE characters.
To configure AniTa's DDE capabilities, select Preferences from the Config menu. Then choose the DDE dialog box. To configure AniTa as a DDE client, use the following settings:
The above example "hard codes" the configuration parameters of the DDE server to which AniTa will send data. Data will be sent to the item called "ddemessage" in a topic name of "vbservertop" within a DDE service called "vbserver".
When AniTa sees the start string |FROMHOST| in the data coming from the host, AniTa starts collecting all incoming data to a buffer. (this is transparent to the AniTa user). When AniTa sees the stop string |END| in the data stream from the host, the collected data is sent to the DDE server.
A simple test from UNIX to see that this link is working is to use the echo command. This will send a string to AniTa. If the string containd the configured start and stop strings then the data in between will be sent to the configured DDE server.
In order to send the string "hello from UNIX" use the following command:
# echo "|FROMHOST|hello from UNIX|END|"
If on the other hand you want to be able to specify the destination DDE server from within the host, rather than have it "hard coded" in AniTa, change the AniTa DDE parameters as follows:
This will read the DDE server parameters (service, topic and item names) from the string send by the host. They should immediately follow the DDE start string and be seperated by the delimiter specified, in this case the default vertical bar.
In order to send the string "hello from UNIX" to the DDE server specified, use the following command:
# echo "|FROMHOST|vbserver|vbservertop|ddemessage|hello from UNIX|END|"
We provide on our ftp server, a sample Visual Basic program that can be used in conjunction with AniTa to test its DDE capability. We provide both an executable program and the source. The DDE parameters are vbserver, vbservertop and ddemessage as used in the above examples.
Get the source of the VBSERVER.EXE program
AniTa's DDE server capability lets you connect to AniTa and poke strings that AniTa then sends to the host just as if the text had been entered at the keyboard. Text on AniTa's screen can be read via DDE. This makes it possible for you to control host applications and to display host data from within windows programs that supports DDE.
To configure AniTa's DDE capabilities, select Preferences from the Config menu. Then choose the DDE dialog box. To configure AniTa as a DDE server, use the following settings:
Once you have configured AniTa as a DDE server, you can send it commands from a DDE client application. There are two methods of sending commands: DDEPoke and DDEExecute. Data is returned to the application from AniTa using DDERequest. AniTa supports three DDE commands: TOHOST, TOHOSTX and GETTXT.
Used with DDEPoke or DDEExecute. The TOHOST command sends the string to host as if typed. It will translate sequences like <CR> and <1B>.
Used with DDEPoke or DDEExecute. The TOHOSTX command sends the string to host as if typed. It will perform a full macro expansion and translate sequences like <CR> and %terminal%.
Used with DDEPoke or DDEExecute. The GETTXT is used to tell AniTa what portion of the screen is to be read. When you call GETTXT with valid parameters, AniTa creates an item called TXTRET and puts the return data here. You can then use DDERequest to get the return data.
The GETTXT command has two forms; it must be supplied with either four or nine parameters. The short form copies the data as it is on the screen, appending a CR/LF after each line. The long form works just like AniTa's 'table copy' function. The five extra parameters in the long form corresponds to the checkboxes and radio buttons in the 'copy table' dialog box.
The parameters to GETTXT are sent as string containing a semicolon-separated list of integers. The parameters are:
Examples:
Used with DDERequest. The TXTRET is used to read from AniTa's screen. You must preceed it with a GETTXT command in order to tell AniTa which part of the screen is required.
In the following examples we use service ANITA and topic ANITATOP, which are the default settings for AniTa and which are shown configured above. If you change AniTa's DDE configuration, then change these in the examples as well. The item is always the name of the command, and is thus not configurable when AniTa is a server.
To send commands to AniTa via DDEPoke, send to an item with the same name as the command. You cannot send embedded NULL characters in the string. The poked string's maximum length is 100 characters.
For example, you could poke the string "getinfo karlsson<cr>
DDE Command: |
DDEPoke |
DDE Service: |
ANITA |
DDE Topic: |
ANITATOP |
DDE ITEM / AniTa Command: |
TOHOST |
String: |
getinfo karlsson<cr> |
To send commands to AniTa via DDEExecute, send a command to the AniTa's service/topic pair, prepending the data with the command name and a semicolon. There must be no space between the command name and the semicolon. To send the string in the example above, you would DDEExecute the string "TOHOST; getinfo karlsson<cr>
DDE Command: |
DDEExecute |
DDE Service: |
ANITA |
DDE Topic: |
ANITATOP |
String: |
TOHOST;getinfo karlsson<cr> |
To obtain data from AniTa's screen, first send a command using DDEPoke/DDEExecute telling AniTa which part of the screen you wish to read, and then issue a DDERequest to item TXTRET to read the data.
Tell AniTa what to read (all 80 columns and 24 lines):
DDE Command: |
DDEPoke |
DDE Service: |
ANITA |
DDE Topic: |
ANITATOP |
DDE Item / Anita command: |
GETTXT |
String: |
0;0;80;24 |
Read the returned data:
DDE Command: |
DDERequest |
DDE Service: |
ANITA |
DDE Topic: |
ANITATOP |
DDE Item / Anita command: |
TXTRET |
We provide on our ftp server, a sample Visual Basic program that can be used in conjunction with AniTa to test its DDE capability. We provide both an executable program and the source.
Get the source of the VBCLIENT.EXE program
The following VBA (visual basic for applications) code uses DDE via AniTa to obtain the time from the host and insert it into the current Word document. It has been tested with Word 97 under Windows 95. AniTa has to be running for this to work.
It works by first sending the command "clear" to UNIX, and waiting 3 seconds for this to be performed. Then it sends the command "date", the result of which will now appear on the top two lines of the already cleared screen. After 3 seconds, it reads the first 30 characters of the line containing the UNIX date and inserts this into the Word document together with a comment. It is not necessary to use the ddedelay, but it does make the example simpler.
Public Sub MAIN() Dim ChanNum Dim a$ ChanNum = WordBasic.DDEInitiate("ANITA", "ANITATOP") If ChanNum <> 0 Then WordBasic.DDEPoke ChanNum, "TOHOST", "clear" ddedelay 3 WordBasic.DDEPoke ChanNum, "TOHOST", "date " ddedelay 3 WordBasic.DDEPoke ChanNum, "GETTXT", "0;1;30;1" a$ = WordBasic.[DDERequest$](ChanNum, "TXTRET") WordBasic.Insert "The date and time on our UNIX host is:" WordBasic.Insert a$ WordBasic.DDETerminate ChanNum End If End Sub Public Sub ddedelay(seconds) Dim Start Start = Timer() Do While Timer() < Start + seconds DoEvents Loop End Sub
Sometimes when a problem occurs running an application in AniTa, the resolution can best be determined by creating a trace file. This trace file contains the all communications between the host computer and AniTa.
To record the communications in a trace file, perform the following steps:
You have now created a trace file. It will be called "anita.trc" and will be located in the same catalog as the configuration file used to start AniTa. This is normally "anita.wcf" located in the "C:\Program Files\AniTa" catalog.
This trace file will contain all the characters and escape sequences sent by the host to AniTa and all the keyboard input sent by AniTa to the host.
If you are using this file to report a problem to support, please send the AniTa configuration file "anita.wcf" as well as the "anita.trc" file. This will enable support staff to play back your recording, using you same configuration and see the problem as it appears on your screen.
Reason: The default Scroll Lock mapping in AniTa version 3 and 4 is %hold% which is used to temporarily hold data reception.
Fix: Toggle the Scroll Lock key and verify that this is really the problem.
You can permanently remove the Scroll Lock mapping the following way:
1.
enter the keyboard mapping dialog.
2. click on Scroll Lock on the graphical
part.
3. click on delete button.
4. click OK to leave the dialog.
5. go
back in and verify that %hold% mapping is now gone.
![]() |
Back to April's Home Page | Webmaster: keith@april.se |