Can a submenu be shared on different PCs or by different users?

Yes. Shared menus allow to manage favorites in a setting file that can be shared by different users or used by the same user on different computers. The Shared menu settings file can be saved on a network drive or a shared folder (like Dropbox) and used on different PCs. Add a Shared menu from the Add Favorite dialog box. In the Shared Menu tab, select the type of usage of this shared menu:

Notes:

  • A Shared menu can contain any type of favorites, except other Shared menus.
  • Shortcuts associated to favorites in Shared menu are saved in the Shared menu itself. However, if the same shortcut is used in more than one favorite in different files, only one of these favorite shortcuts will be active.
  • If favorites in a Shared menu are saved on a cloud drive folder (like DropBox), you can use user variables (like {Dropbox}) if the cloud drive root directory is not at same locations on the various systems of the shared menu users.
  • Even if QAP provides protection against synchronization conflicts (when users are editing a menu at the same time), syncing issues may (rarely) occur for users working on cloud synchronization platforms like Dropbox or Google Drive that cannot accomplish full real-time syncing.
  • Users sharing menu on cloud shared drives working in different time zones should use QAP v9.0.6 (or more recent) that support sharing in different time zones.
  • Users sharing menus on network drives do not face sync or time zone issues because the shared menu file time stamp is read from the file itself.
  • Each time a Shared menu is modified and saved, a daily backup of the settings file is created with a suffix including the date of the backup, for example FileName-backup-20180812.ini; the five last backup files are kept and the older ones are deleted; backups are saved in the same folder where is kept the Shared menu file unless a backup folder is set by entering the value BackupFolder= (for example, BackupFolder=X:\SharedMenu\Backups) under the [Global] section of the Shared menu file.

 

Can a submenu be used by the same user on different system using a personal shared folder?

Yes. Personal shared menus allow you to keep some of your favorites in a menu setting file that could be accessed on different PCs using file synchronization tool (like Dropbox) or a network drive.

Note: See notes and other types of shared menus: Can a submenu be shared on different PCs or by different users?

Adding a Personal Shared Menu

  1. To create or add a shared menu, in the Add Favorite dialog box, select Shared Menu and press Continue.
  2. In the Shared menu settings file location, enter the path and file name of the external settings file. File extension must be .ini. If the settings file already exists, its content will be added to your popup menu. If it does not exist, it is created as an empty submenu.
  3. In the Short name for menu text zone, enter or edit the name of the new submenu if required.
  4. In the Shared Menu tab, select Personal.
  5. Set Menu Options as usual and save the new favorite.

Conflicts management
In Personal mode, Quick Access Popup alerts you if:

  • changes to your shared menu were left unchanged on another of your computers;
  • your menu was updated on another PC since you refreshed QAP (shared menus are refreshed when you open the Customize window and, again, when you open a Shared menu in the Customize window).

Can a submenu be shared as a team or workgroup collaborative tool?

Yes. Shared menus is an easy and convenient way for teams and workgroups to share links to documents, applications, folders, text snippets or any other resource. Designed for collaboration, any user having access to the shared menu can add or update favorites or submenus. The shared menu file can be saved on a network drive or a shared folder using a file synchronization tool (like Dropbox). QAP fully supports collaborative work avoiding modification conflicts.

Note: See notes and other types of shared menus: Can a submenu be shared on different PCs or by different users?

Adding a Collaborative Shared Menu

  1. To create or add a shared menu, in the Add Favorite dialog box, select Shared Menu and press Continue. If the Shared Menus Catalogue is enabled, you are offered to add a menu from the catalogue (you can also add a shared menu or create a new shared menu regardless of the catalogue by clicking the Add another shared menu… button).
  2. In the Shared menu settings file location, enter the path and file name of the external settings file. File extension must be .ini. If the settings file already exists, its content will be added to your popup menu. If it does not exist, it is created as an empty submenu.
  3. In the Short name for menu text zone, enter or edit the name of the new submenu if required.
  4. For a new shared menu, in the Shared Menu tab, select Collaborative and enter the shared menu name (this info is saved in the shared menu file itself for future users of this menu).
  5. If you share your menu on a cloud drive (like Dropbox, Google Drive or OneDrive), select the option Could drive to make sure QAP takes time zones difference into account when checking if a menu has been modified by another user since it was loaded on your system.
  6. Set Menu Options as usual and save the new favorite.

Quick Access Popup offer teams and groups of users collaborative features allowing to benefits from the favorites found and maintained by co-workers. Quick Access Popup prevents the current user to overwrite changes done by another user since its QAP menu was loaded. To avoid Collaborative Shared menu files modifications conflicts, Quick Access Popup alerts you if:

  • another user is making changes to the menu;
  • your menu was updated by another user since you refreshed QAP (external menus are refreshed when you open the Customize window and, again, when you open a Shared menu in the Customize window).

Can a submenu be managed by a menu administrator for the benefit of read-only users?

Yes. Shared menus is an easy and convient way for a person or group in managing information for their colleagues to distribute links to documents, applications, folders or any other resource. Designed for controled management, a centralized shared menu is read-only for all users except those configured as menu administrators. The shared menu file can be saved on a network drive or a shared folder using a file synchronization tool (like Dropbox). Of course, users having write-access to the shared menu settings file could edit it using a text editor.

Note: See notes and other types of shared menus: Can a submenu be shared on different PCs or by different users?

Adding a Centralized Shared Menu

  1. To create or add a shared menu, in the Add Favorite dialog box, select Shared Menu and press Continue. If the Shared Menus Catalogue is enabled, you are offered to add a menu from the catalogue (you can also add a shared menu or create a new shared menu regardless of the catalogue).
  2. In the Shared menu settings file location, enter the path and file name of the external settings file. File extension must be .ini. If the settings file already exists, its content will be added to your popup menu. If it does not exist, it is created as an empty submenu.
  3. In the Short name for menu text zone, enter or edit the name of the new submenu if required.
  4. For a new shared menu, in the Shared Menu tab, select Centralized and enter the shared menu settings (this info is saved in the shared menu file itself for future users of the menu):
    • Shared menu name;
    • Users with write access to this shared menu: enter one or multiple Windows logon names separated by comma;
    • Shared menu write access message: message displayed to read-only users when they try to edit the shared menu.
  5. Set Menu Options as usual and save the new favorite.

When read-only users try to edit a centralized shared menu, the write access message is displayed. Here is an example:

Only menu administrators named in the Users with write access to this shared menu text box can edit the content of the shared menu. If more than one user have this privilege, Quick Access Popup prevents the current user to overwrite changes done by another administrator since its QAP menu was loaded. It avoids files modifications conflicts and alerts you if:

  • another administrator is making changes to the menu;
  • the centralized menu was updated by another administrator since you refreshed QAP (external menus are refreshed when you open the Customize window and, again, when you open a Shared menu in the Customize window).

Generating a shared menu

If you want to generate a Shared menu settings file from an external application, see the structure of the favorites in a settings file and important instructions: What is the content of a shared menus settings file (for advanced users)? See also: What is the structure of QAP settings (ini) file?

Important note: the last file modification date-time is stored in the shared ini file in the [Global] value LastModified in “yyyymmddhh24miss” format (for example “20191004224941”). This value should be updated if the content of a centralized shared menu file is changed outside QAP by an administrator or by an automatic process.

 

What is the content of a shared menus settings file (for advanced users)?

Each shared menu settings file is saved in a separate .ini files stored on a shared drive or folder. User can add a shared menu using the Add Favorite command. The info about the added shared menu is stored in the user’s QuickAccessPopup.ini file in a line like this:

Favorite1=External|HR Menu|> HR Menu|C:IconsJLicons.dll,42||C:SharedMenusHR_Menu.ini||||||||0||||||

Anatomy of a shared menu settings file

Users having access to the shared menu ini file on a network drive or shared folder (Dropbox, etc.) can manage the shared menu in a text editor. They can also be generated from an external data source. If you edit or generate a settings file, make sure its content is fully compliant with the QAP structure because little or no validation is done when QAP loads a settings file. QAP assumes that the settings file contains valid data as if it was saved by QAP itself.

The shared menu settings file is composed of three sections:

  • [Global]: information about the shared menu
  • [Favorites]: the list of favorites shared in this menu
  • [Favorites-backup]: a backup of the favorites as they were before the last time the shared menu was saved

Here is an example of a shared menu. Its content is detailed below.

[Global]
MenuName=HR Resources Menu
WriteAccessUsers=Mary,Jean
WriteAccessMessage=Please contact Mary at HR for suggestions about the HR shared menu.
MenuReservedBy=
MenuType=3
LastModified=20191004093906
BackupFolder=X:\SharedMenus\Backups
[Favorites-backup]
Favorite1=...
Favorite2=...
Favorite3=Z
[Favorites]
Favorite1=...
Favorite2=...
Favorite3=...
Favorite4=Z

[Favorites] section

The shared favorites are listed in the [Favorites] section in the order they are saved and loaded by QAP. The details of the favorites structure is the same as for the user’s QuickAccessPopup.ini file. You can find more info about the favorites in a settings file here: What is the structure of QAP settings (ini) file?

[Global] section

The content of the [Global] section depends on the type of shared menu. The four first values are common to all types of shared menus:

MenuType=

  1. Personal (default)
  2. Collaborative
  3. Centralized

MenuName=
The shared menu name is shown in various dialog boxes and used as default name when user adds the shared menu from the Shared Menus Catalogue.

LastModified=
The last modified date-time is used to detect if a shared menu file was modified by another user since the QAP menu was loaded. This prevents the user to edit the menu based on an older version of its content.

When saved on a network drive, the last modification date-time of the shared menu ini file is taken from the file system and is independent from various user’s clocks or time zones. Of course, the date-time being written to the file right after its modification, the real file’s date-time can be a few milliseconds after the value saved in the file but this will not impact the conflict protection.

But if the shared menu file is saved on a cloud drive, the last modification date-time of the shared menu ini file is taken from the PC’s clock in the Coordinated Universal Time (UTC). These PCs clock should be kept as sync as much as possible.

In both cases (network or cloud drive), the time is stored in the “yyyymmddhh24miss” format with the addition of the “UTC” when suffix when saved on a cloud drive (more info about date-time format in AHK documentation).

The file modification date-time in the ini file is updated only when changes are done to the content itself (shared favorites), not for actions modifying the file’s date-time without real modifications in the content. This value must be updated if the content of the shared menu file is changed outside QAP by an administrator using a text editor or by an automatic process.

MenuReservedBy=
This value is used to track current editing of a shared menu. If this value is empty, the menu is not currently reserved. When the menu is edited, it is flagged as reserved by setting the value to the Windows logon name and computer name of the user currently editing the shared menu (you can find the current user’s logon name in the QAP About dialog box).

The shared menu is released and the value of MenuReservedBy is erased when the user who reserved the menu saves or cancels the changes to the Shared menu, or quits QAP. This value can be erased manually by an administrator if, for any reason, a file is locked by a user who could not access the file using QAP.

This value is critical to collaborative shared menus where the risk of simultaneous editing is more likely to occur. But it is also used to alert a personal shared menu user if the menu was left unsaved on another PC and to alert administrator of a centralized menu if another administrator is currently editing the menu.

The last two values are specific to Centralized shared menus:

WriteAccessUsers=
Only users listed in this value can edit a centralized shared menu. Enter one or multiple Windows logon names, separated by comma. Note: of course, any user having write-access to the shared menu settings file itself could edit it using a text editor.

WriteAccessMessage=
This is the message displayed to user having only read-only access to a centralized menu when they try to edit the menu with QAP. It can be used to direct the user to the menu administrator.

BackupFolder=
Each time a Shared menu is modified and saved, a daily backup of the settings file is created with a suffix including the date of the backup, for example FileName-backup-20180812.ini; the five last backup files are kept and the older ones are deleted; backups are saved in the same folder where is kept the Shared menu file unless a backup folder is set by entering the value BackupFolder.

Personal shared menu example

[Global]
MenuType=1
MenuName=My Personal Menu
LastModified=20191004224941

Collaborative shared menu example

for a menu saved on a network drive

[Global]
MenuType=2
MenuName=Team Shared Menu
MenuReservedBy=
LastModified=20191004224941

for a menu saved on a cloud drive

[Global]
MenuType=2
MenuName=Team Shared Menu
MenuReservedBy=
LastModified=20191005024941UTC

Centralized shared menu example

[Global]
MenuType=3
MenuName=HR Toolkit Menu
WriteAccessUsers=Peter,Paul,Mary
WriteAccessMessage=Please forward suggestions to Peter, Paul or Mary.
MenuReservedBy=
LastModified=20191004224941

Can I create a catalogue of shared menus for my team or workgroup?

The Shared Menus Catalogue is a repository of Shared Menu files managed by menu administrators or by other workgroup members (more info on Shared Menus). It is designed to facilitate the addition of shared menus by users.  The settings files (.ini files) in the catalogue are located on a shared network drive. They can stay in the root folder or they can be saved in subfolders for clarity or in order to manage various access rights. But all settings files will be displayed as one sortable list.

If the Shared Menus Catalogue is enabled (see below how to enable it) when adding a Shared menu, the user is offered to select an existing Shared menu file from the repository and click the button Add selected shared menu(s). User can click list headers to sort the catalogue by menu name or by menu settings file path. User can also add any other shared menu or create a new shared menu regardless of the Catalogue by clicking on the button Add another shared menu.

User can double-click on a catalogue line to view the clicked shared menu info (menu name, type, owners, etc). Users having write access to the shared menu file (Mary and Jean, in this example) see the Open shared menu file? prompt allowing them to edit the shared menu properties in the ini file (of course, users also need network write access to the containing folder).

Enabling the Shared Menus Catalogue

The catalogue can be enabled in the Options dialog box (Various Advanced Options tab) by checking Enable Shared Menus Catalogue checkbox and by entering the path of the Catalogue root folder.

 

System administrator could also edit the users’ QuickAccessPopup.ini files (see How can I edit the file QuickAccessPopup.ini?) and, for each user, enter these values under the [Global] section:

ExternalMenusCataloguePath=
Path to the catalogue root on a shared drive (as entered in the Options dialog box).

ExternalMenusCataloguePathReadOnly=1
This variable set to “1” can prevent the user from enabling/disabling the catalogue or changing its path in the Options dialog box (of course, user could still change it in its own personal QuickAccessPopup.ini file).

For future users, the admin can also add these values in the ini file template used to create new users settings file. More info here: Are administrator rights required to install QAP?