I'm trying to publish a Microsoft Access-based application on the Internet. We're using an .ica file to launch a published application. I have a few questions:

  1. The application calls other applications to display documents with Microsoft Word and Visioneer, and the application uses multiple documents. If we connect to a published application with Program Neighborhood, Alt+F2 displays a minimized window. But if we connect from an .ica file and the Web client, when we open a window, we can't maximize it once we've minimized it. Also, we'd like the window size to be relative to the user's desktop—not everyone has the same monitor.
  2. When we connect with the Web client, performance doesn't seems as good as when we connect with Program Neighborhood. Is there any tuning we can do?
  3. Can we use audio with the Web client?

When you launch an application, there are three ways to set the window size in the .ica file: You can specify the window's horizontal and vertical size, make the window size a percentage of the user desktop, or create a seamless window session. I believe that creating a seamless window session is the solution you're looking for. A seamless window enables seamless integration of remote applications into a client's local Windows desktop. It makes one connection to the server, but you use multiple applications and multiple document windows as if they were running on your local PC. You have a fully functional local keyboard with controls such as Alt+Tab, and you can tile and cascade local and remote application windows. This approach gives you resizable windows based on the user desktop and lets you task switch among applications and windows. Each application gets its own icon on your Start menu just like a local application.

To create a seamless window, make the following modifications to the \[Application\] section of the .ica file:

DesiredHRES=4294967295
DesiredVRES=4294967295
ScreenPercent=0
UseDefaultWinSize=Off
DesiredWinType=8
TWIMode=On

As to your second question, performance is better probably because disk caching and data compression are turned on when you connect with Program Neighborhood but not when you connect with the Web client.

Enabling bitmap disk caching for an .ica session requires two very simple edits to the .ica file. Make the following modifications to the \[WFClient\] section:

PersistentCacheEnabled=On ; Turns on persistent cache
PersistentCacheSize=50331648 ; Sets up a 48MB cache
PersistentCacheMinBitmap=2048 ; Sets smallest element to be cached to 2KB
PersistentCachePath=C:\Windows\Temp ; Sets the path to where cache is stored (can be any known directory, but Temp is a very sure bet)

Make the following modification to the \[Application\] section:

PersistentCacheEnabled=On ; Turns on persistent cache

To turn off bitmap caching, turn off PersistentCacheEnabled in the \[Application\] section of the .ica file. Note that if the PersistentCacheEnabled setting in the \[Application\] and \[WFClient\] sections differ, the setting in the \[Application\] section takes precedence. By making dynamic .ica files, you can change PersistentCachePath to correspond to the directory where each user wants to locate the cache files, but it's much easier to use a common directory.

Data compression is a bit more complicated. For this, you must have users add a file to their System32 directory (for a Windows NT client) or system directory (for a Windows 9x client) or do a full 32-bit client install. Although Citrix doesn't endorse this approach, claiming that it doesn't work with the application launching and embedding (ALE) client, here's how you can do it. First, add the following lines to the \[Application\] section of your .ica file:

Compress=On
MaximumCompression=On

The next step is to copy the pdcompn.dll file from a full Program Neighborhood install to the machine using the 32-bit Web client. Copy the file to the System32 directory for an NT client or to the System directory for a Win9x client. If you don't use this file, you get the error message "The DLL file or a DLL referenced by it was not found."

The answer to your last question is simply no, you can't use audio with the Web client. There is, however, an alternative: You can change the application that .ica files are registered to. Instead of having .ica files start with wfica32.exe, register them to start with wfcrun32.exe. wfcrun32 does support audio and will start from a .ica file. This, however, could be a pain to manage. I wouldn’t want to recommend it for all users.