Microsoft VISTA from V3.10

Version Relevance: 3.1000

Issue: Vista's User Account Control keeps asking for permissions when I launch different Omnis editions (runtime and design). Why and can I turn this off?

June 17th, 2008

Background: Microsoft introduced "User Access Control" with Vista and subsequently Server 2008. Among other things it made the Program Files directory read only to normal users. Installing software in Program Files became an administrator privilege and during normal running files within Program Files could not be changed or updated. Also, changing many registry settings became subject to the new User Access Control. A security improvement say Microsoft.

The effect of this has been to force Omnis to split it's traditional tidy single installation in the Program Files directory tree into two separate locations, one we will call the Program Folder and the other the User Folder (Omnis actually call this the "Data Directory" but we at Caliach think this is a missleading description of it). This is only the case with Omnis V4.3 and later running under Vista or later. It does not apply to earlier Omnis versions or any Omnis version running under earlier Microsoft operating systems or Macintosh OSX or Linux.

New To V3.10 on Vista: The Program Folder path is typically c:\Program Files\TigerLogic\OS431 RT\ and this will contain the executable file omnis.exe, other essential files and folders with one in particular named firstruninstall which we will come on to later. All these files and folders are created during the Omnis installation process, typically from our CD.

The User Folder does not exist until Omnis is run for the first time and is specific to a particular omnis installation and to each user that runs it. It will be found here: c:\Users\UserName\AppData\Local\TigerLogic\OS431 RT\ where UserName will be something like Chris or Paul and os431rt will be the same as the directory name of the omnis installation in Program Files. You will end up with several of these directories one for each user and omnis installation combination.

The contents of the User Folder are all the files that Omnis may need that can be modified during normal operation. Omnis itself automatically copies the contents of the firstruninstall folder in the Program Folder on the first occasion a user runs an omnis session. There are a number of significant consequences of this arrangement which are therefore specific to Vista:

  1. If you uninstall your Omnis using Remove Programs, the User Folders are not deleted. This is probably true for many Vista programs as the installation process, from which the uninstall process knows what to remove, knows nothing of the subsequently Omnis-copied files.
  2. There are two files that Caliach Vision needs that live in the User Folder; startup\adhoc.lbs and icons\newicons.df1. The Caliach Vision installer puts these files in the Program Folder firstruninstall folder locations. Then when you run Caliach Vision and it finds them missing in the User Folder, Caliach Vision will automatically copy the files to their correct location. If they are missing you will receive a message and when they are first copied you may also receive a message of warning. However, if these files ever need updating, you will have to copy the new updates manually.
  3. If several users run Omnis, each will have their own configuration and serialization files. So each new user will have to separately serialise Omnis for their use and will have their own configuration settings such as window positions and sizes which is particularly relevant to the design edition. Also any design-time changes that effect files in the User Directory, such as icon changes, will occur only in that user's User Folder and not others.
  4. The Caliach Vision Demonstation installation avoids all this because it's default location is c:\VisionDemo\ and therefore it lives outside the Program Files and theefore is immune from the demands of User Access Control. This may be somewhat against Microsoft rules but we feel the convenience outways Microsoft conformity. When Omnis runs outside Program Files, it does not need to create a User Program.

Feedback: This is for Advanced Users. There is an additional complication stemming from Vista's User Access Control which is relevant only when you run more than one edition of Omnis, for example both Design and Runtime.

The following is from Omnis documentation and explains what is happening and how you can avoid excessive messages:

"When User Account Control(UAC) is turned on, you get the following message when you start different versions of the Omnis executable, that is, the Development, Runtime, Unicode or Non-Unicode versions:

"Omnis Studio needs to run studiorg.exe to install registry settings. User Account Control will ask you to allow studiorg.exe to run. Please allow it to run."

This problem cannot be overcome as there is only one set of registry entries associating file extensions (such as, lbs) with the executable; the UAC prompt is related to the executable associated with the file associations changing.

Instead, you can disable this file association checking and updating process by adding the entry "UpdateFileAssociations=0" to the General section of omnis.ini in the User Folder (Omnis call it Data Directory) under Windows Vista (the ..\AppData\Local\.. folder), or the normal Omnis root folder on other Win32 platforms. You will need to create the omnis.ini file, if one does not exist, in the following format:

[General]
UpdateFileAssociations=0

This causes the file associations to be left set to the last executable that was allowed to update the registry, therefore stopping the UAC message on Windows Vista. This has the same effect on other Win32 platforms, but since there is no UAC and therefore no messages, the inclusion of the ini file entry may not be necessary."

Chris Ross - Caliach Design