![]() |
![]() |
![]() |
|
|
|
|
Last updated: 17 Dec 2010
Saving settings in Installation folder - UAC Virtualization
AniTa 32 is compiled as a 32 bit program that runs in all versions of Windows.
This includes both 32-bit Windows and 64-bit Windows. The general support
for 32-bit s/w in 64-bit Windows comes from Microsoft and does not impose
any penalty. Very few programs can take advantage of running in native
64-bit mode while the interoperability with other standard objects can become
a problem. Therefor, Microsoft even suggest that you install the 32-bit
version of Office in 64-bit machines though there is a 64-bit version of
Office available (unless you have specific reasons to get highest possible
Office access to file systems and databases).
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: 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: 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. 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.
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.
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.
AniTa connects OK (the toolbar phone gets green) , but there is nothing on the
screen. 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: How is it possible to make a modem connect at a specific speed? When I establish
a serial connection with a Modem it always uses its highest speed, for example
28,800 baud, how do I setup the modem to use a slower speed such as 19,200
baud.
There is a Hayes AT command to set the highest link rate. It is the S37 register
value. The command can be added to the Modem init string configured in the
AniTa "Modem type" menu. Here is a list of command values: Examples: ATS37=9 to set the highest link rate to 9600 ATS37=12 to set the highest link rate to 19200 ATQ0V1E1S0=0S37=9 Initialize the modem and set the highest link rate to
9600 General modem information:
How do I make AniTa modem accept incoming calls?
Autoanswer is normally configured using the S0 register. The S0 value is
the number of incoming ring signals before answering. The default AniTa Modem Init string is set to: S0=0 (disabling incoming calls
since you will normally dial out). If you want AniTa to wait for an
external call, do the following: 1. Disable "Phone Number/Auto-dial" Example: AT&FQ0V1E1S0=1
If you want all users in the same PC to use the same settings files and maybe also allow everyone to update settings, use "Save As..." in AniTa and specify a folder that is not covered by the UAC file virtualization. For example, save settings into "C:\AniTa". Then, you can also change the default AniTa startup shortcut to "C:\AniTa\anita.wcf" to startup with a common setting for all users.
Another way to get the same result, but perhaps sacrifice a bit on the security side is to from the beginning install AniTa into a different folder (for example "C:\AniTa\") that is not protected by UAC File System Virtualization.
Background
The Program Files directory (typically located at C:\Program Files and referred to as %ProgramFiles%) is where most applications store the executable files for the application. This is also the default base installation folder for AniTa.
The destination folder in AniTa installation can be set to any local folder, for example C:\AniTa, but the default AniTa folder is C:\Program Files\AniTa\ in a default or silent installation. The installation folder is also the default folder when AniTa settings are saved. AniTa is by default configured to save all settings files as a set of files with the same filename but different extensions. In a default situation, assuming that you just started AniTa using the default settings file, if you select to just "Save" settings, then all settings will use the name anita.wcf, .map, .key, and so on. If you use "Save As...", and name the settings "test", then you get a set of files starting with test.
In order to raise security, Microsoft Windows Vista introduced UAC (User Account Control) and at the same time prevented users from writing into any folder with the %ProgramFiles% base, including "C:\Program Files\AniTa\". This means that whenever the AniTa settings are saved in the "C:\Program Files\AniTa\" folder, they are actually saved somewhere else.
Within Vista, UAC lends a helping hand by virtualizing the file system. Files are automatically saved in a VirtualStore for each user. Typically "C:\Users\
If this is good or bad can be discussed, but it is the way it works, and this UAC system is also implemented in Windows Server 2008 and Windows 7 and will most likely remain this way in the future.
Running AniTa in 64-bit Windows
Installation on a Central Server in a Network
AniTa 16-bit and Internet Explorer 5
Dynamic Data Exchange - DDE
AniTa as a DDE client


A sample Visual Basic DDE server
Get
the source of the VBSERVER.EXE programAniTa as a DDE server

TOHOST command
TOHOSTX command
GETTXT command
TXTRET command
Sending commands via DDEPoke
Sending commands via DDEExecute
Getting data via DDERequest
A sample Visual Basic DDE client
Get
the source of the VBCLIENT.EXE programA sample Microsoft Word macro
Dim ChanNum
Dim a$
ChanNum = WordBasic.DDEInitiate("ANITA", "ANITATOP")
If ChanNum <> 0 Then
WordBasic.DDEPoke ChanNum, "TOHOST", "clear <cr>"
ddedelay 3
WordBasic.DDEPoke ChanNum, "TOHOST", "date <cr>"
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
How to create a Trace
>
In the Config menu, go to the Preferences -> View dialog box.
>
Disable "connect when started".
In the Config menu, go to the Preferences -> Files dialog box.
Make sure that the "Com Recording/Trace File" name is set to "anita.trc".
Scroll Lock
Question:
Answer:
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.
Make a modem connect at a specific speed
Question:
Answer:
0
Use Last AT Speed
1
Reserved (75)
2
Reserved (110)
3
300
4
Reserved (600)
5
1200
6
2400
7
4800
8
7200
9
9600
10
12000
11
14400
26
16800
12
19200
33
21600
29
24000
34
26400
15
28800
For more information have a look at:
http://www.56k.com General 56K Modem
information and troubleshooting
Make a modem Auto-answer incoming calls
Question:
Answer:
2. Change the "Initialize" string in the "Modem type" menu.
3. Click the AniTa "Connect" button. (Wait for someone to dial
in)
Connect to dialback modem
How do I connect to a dialback modem?
Dialback is a feature in a modem. It can typically be configured in
many different ways.
If both modems are of the same type, It can be configured without changing
any of the computers involved. (read the modem manual to find out how to
configure it).
If the remote modem is configured for dialback to any incoming modem,
you need to enable Auto-answer in the AniTa end to get it working.
Auto-answer is described above. The following is a typical
example of what's happening when you connect to a dialback modem:
How do I stay connect after connecting? The line gets connected OK, but is immideately disconnected when data is sent or received.
There may be many reasons for this to happen, so we know we can't give you a good single answer here. One reason is that the modems are simply not compatible for automatic link speed negotiation. You need to find out how to configure your specific modem to connect at a specific highest link rate. Consult your modem reference or try the speed connect method above.
Another reason may be that the speed between the computer and the modem is not the same. This can typically be configured using the AT&B1 command. &B1 means: use fixed rate between the modem and the CPU. This is typically needed on the mainframe side.
My host application can print to the printer connected to one AniTa Windows PC printer while the same application can't print to a printer connected to another AniTa Windows PC printer. What can possibly be the reason?
There may be many reasons for this to happen, so we know we can't give you a good single answer here. One reason is often:
The printer may not support normal byte stream data. Some printers (
typically low-cost) only support something Microsoft and printer manufacturers
call: "Windows Printing System". A part of the printer driver is running in the
PC. This means that there must be a machine sending data to the printer
using the Windows Printer GDI API. It also means that other operating systems
can't use the printer directly in the traditional "lineprinter" way. AniTa can
try to support passthrough printing from UNIX to the printer by translating the
UNIX byte-stream to the Windows GDI interface. You configure this in AniTa
Terminal #1 dialog by changing to: "GDI printer driver" (from the default:
"Send host formatted ...").
You can test if the printer is working in byte stream mode and/or just
in GDI mode. Do the following:
Is it possible to use UNIX/AIX/Linux LPD to print to Windows printers?
Yes, with AniTa version 7.
AniTa version 7 Enterprise license includes the AniTaLPD program. AniTaLPD supports the LPD printing protocol. This makes it possible to print from the UNIX applicatioin to a printer located on the AniTa PC or the network where AniTa is connected. The general rule is: If the printer can be used from Windows, then you can print to it from UNIX.
Features.
The
AniTaLPD task can be started/stopped automatically every time AniTa is
started/stopped. Printing can be filtered through the same filters and
configuration as the Terminal Printer configured in AniTa. It can also be
set up to route print data to different AniTa printers based on the LPD
queue name. Another feature is the /cat parameter that allows raw
datastreams to be printed using for example the netcat freeware
program. AniTaLPD can also be used to receive files to disk. It is
possible to send an escape string to AniTa that starts up AniTaLPD on a specific
port to receive one single job and save it to disk, then exit.
AniTaLPD supports multiple parallell
sessions.
Starting AniTaLPD can be done either from the command line or from the AniTa menu: Config->Preferences->LPD Server.
Some of the keyboard keys (like screen movement) doesn't work.
The screen
movement using any keyboard key (including the arrow keys) are handled by the
host application. The host side knows which code AniTa sends when an
arrow key is pressed. The problem can be that the host application for
some reason has a different opinion about which keyboard codes AniTa will send.
Termcap and terminfo overview.
All
UNIX/AIX/Linux hosts keep a terminal capabilities definition database. It
is called termcap on older systems and it has later been enhanced and
most applications now use the terminfo system. The application will for
example read termcap or terminfo to find out what a left-arrow key is sending.
Termcap is a text file including all supported terminal types while in terminfo,
each terminal type is compiled into a very small file that exists in a terminfo
tree with one folder for each starting letter. Terminfo and termcap keep
the terminal screen and keyboard capabilities. Each capability has a name
(the name is different in termcap compared to terminfo). There is one
terminfo entry for each terminal type supported by the system. You can add
your own entry, or use an existing entry. Termcap can be modified with any text
editor. Terminfo can be decompiled, change and then recompiled into the
terminfo tree. The terminfo command to decompile an entry can
be:
infocmp
or
infocmp
vt220>my220
The terminfo command to compile an entry can
be:
tic my220
How does the host know
what kind of terminal is connected?
TCP/IP: When the terminal (AniTa)
connects to the host over TCP/IP using telnet or OpenSSH, the host will get the
terminal type automatically. This is built into the telnet and OpenSSH
protocols and always used by the host terminal server. It will result in
the TERM environment variable being set to the terminal type AniTa is configured
for. Some host systems have a hard coded function in the .profile script
that sets TERM to some predefined type assuming that all terminals that connect
are all the same. (.profile is the script that normally gets executed when
a use logs in). AniTa is by default configured to send the last word of
the terminal type you have selected. Example: If you select DEC
vt220, then AniTa will only send vt220. This is configurable in
the AniTa menu: Config->UNIX ENV where the macro %terminal% represents the
last word of the terminal selection. If you want to run AniTa in vt220
mode and fool the host that it is actually a my220 terminal then change it to:
TERM=my220.
Serial: If you connect directly to the host serial line or
over a non-TCP/IP modem line, then the TERM variable is not automatically set
since there is no "protocol" involved. It is common practice for the host
to enquire the terminal about the terminal type by sending the 'answerback'
code. AniTa will respond to the 'answerback' code by sending the terminal
type configured. This can be changed in the AniTa terminal settings
dialog, "Answerback" configuration.
After logged into the host, you can find
out what the TERM variable is set to using the command:
echo
$TERM
If the reply doesn't correspond to the terminal type
you have configured AniTa for, then the TERM= mechanism doesn't
work.
How does AniTa know what terminal it is emulating and which
keyboard codes to send?
You can change the terminal emulation mode in the
AniTa menu dialog: Config->Terminal Emulation. After changing the
terminal type and exiting the dialog you will get the question: "Load default
keyboard map, definitions, ....." Make sure you answer Yes
unless you have very specific reasons to keep the existing keyboard
mapping. Custom keyboard mapping is described in detail in the AniTa
User's Guide.
NOTE! Very Important: After changing terminal type you
must disconnect and re-connect again for the host to know you have changed the
terminal type and update the TERM variable. Else the host may still think
you are a vt220 while you may have changed your own keyboard mapping to for
example Linux.
Largest possible font size
There are gray areas around the text. How do I make the text fill the screen as much as possible?
Quick tip to fill the screen with largest possible text size:
1. First of all it may be good to know that, if your PC screen resolution column in the following table has a 'Yes', then it is possible to completely fill the horizontal screen.
| 1600x1200 | 1400x1050 | 1280x1024 | 1024x768 | 800x600 | 640 x 480 |
| Yes | No | Yes | No | Yes | Yes |
2. You can make it look like the screen is filled by doing the following:
Detailed Answer:
General Font Scaling
True Type and
OpenType
AniTa supports True Type and Open
Type fonts. These fonts are defined as a mathematical algorithm. One very
nice feature is that all True Type and Open Type fonts are scalable by the
display driver.
Bitmapped
AniTa supports
Bitmapped fonts. Each character in a bitmapped font is defined as a bitmap. Each
size of a character in the font selection list is represented by its own bitmap.
This means that bitmapped fonts are scalable to the predefined bitmaps that are
installed. The display driver will also allow scaling a bitmap font to any power
of 2 by simply stretching the bitmap.
Largest possible character size
Maximize screen ( the WINDOW button )
allows using largest possible fonts. When the maximize button (in the upper
right corner) is pressed, the whole screen will be occupied by AniTa and the
area around the screen will be filled with the frame background color. The frame
border size (and the fill region around) will be reduced to zero if the
currently selected font fills the whole screen. Some screen resolutions
will use the full screen size and some won't. The rule is that the
horizontal screen resolution (pixels) must be evenly dividabale with
the number of columns.
Examples:
(All
examples assume 80 columns since this is the most common number of
columns)
Example 1: On a 800x600 resolution you get 800 / 80 =
10 pixels/character.
Example 2: On a 1024x768 resolution you get
1024 / 80 = 12,8 pixels/character. There will be 0,8 pixel/column
left (64 pixels)
Example 3: On a 1280x768 resolution you get 1280 /
80 =
16
pixels/character.
As you can see from the examples, some screen resolutions will fit exactly. The following table shows the some of the most common screen resolutions. It inducates if 80 columns can completely fill the horizontal screen. The table assumes you are using a scalable font like TrueType Courier New or AniTa.
| 1600x1200 | 1400x1050 | 1280x1024 | 1024x768 | 800x600 | 640 x 480 |
| Yes | No | Yes | No | Yes | Yes |
How do I connect to different hosts using all the same settings except the host IP address?
There are 2 easy ways to do it.
1. Create a
shortcut on the desktop that sepcifies the host address on the command
line. This will override the .wcf file setting.
Example:
"C:\Program Files\AniTa\Anita.exe" /ip:hostname.
2. Use "Recently used
host list".
AniTa keeps a record of all hosts connected to. The list is
kept in a text file. The file name can be configured in the menu:
Config->Preferences->Files. It is possible to disable updating of
the file. The default name of the file is anitahosts.txt. This method requires "Prompt
for host" to be set (in menu: Config->Preferences->View).
How do I use different .wcf "settings files" that use the same mapping files (.key, map, xlt, .dyn, ....)?
AniTa settings are stored in a number of files. The main file with most of the settings is by default named AniTa.wcf. Settings for the keyboard mapping, screen button descriptions, dynamic hotspots normally follows the .wcf file name, but with other extensions (like .map .key .but .dyn and a few more). When you save the setting using your own specified name, you also normally save a set of these files. The .wcf file contains file name pointers to these files, and it is possible to create multiple .wcf files that points to the same set of mapping files. In AniTa, go to the menu Config->Preferences->Files and uncheck the "Autoname to same as settings" parameter. Then change the file names to whatever your first .wcf file was.
![]() |
| |||
| © Copyright 2001 | Developed by April System Design | webmaster@april.se |