[Wishlist] Directory of existing shared menus

Suggestion from Helge.

Assuming a list of shared menus existing on a shared drive, in a rather large organization. Each shared menu external ini file would be saved in a sub-folder. All users would have read access to all these folders. Each shared menu would be managed by one or more users having write access to this external setting's sub-folder.

In QAP, show a directory of registered shared menus and allow user to "subscribe to" (add) the shared menus of his choice. Subscribing could be done from a sub-menu within QAP menu, or from a dialog box opened by a button in the Settings window. Check boxes or check menu would allow to select one or more menus.

Offer a way for sysadmin to automatically add a shared menu at next (or first) use of QAP. Let user confirm the addition and position of this shared menu. User could change the name or position of this menu, as with any favorite.

More details in these posts from Helge:
http://www.quickaccesspopup.com/quick-access-popup-wishlist/#comment-12318
http://www.quickaccesspopup.com/quick-access-popup-wishlist/#comment-12348
http://www.quickaccesspopup.com/quick-access-popup-wishlist/#comment-12358

0

[Wishlist] List of favorites from an external/shared settings files

From Helge:

"This wish is going into a more advanced usage direction: It would be nice to have the opportunity to reference external menu configuration files from the QAP settings files. Like this it would be possible to include e.g. a specific submenu folder / file structure which is being dynamically generated externally based e.g. on an XML file database, a database server or any other source from which an external tool would generate a configuration text file meeting the syntax of QAP menu configuration settings. By referencing a file isolated from the main QAP menu settings file there wouldn’t be the risk of conflicts with the QAP GUI settings dialog."

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

Note (March 2017): This FAQ page is actually evolving since the shared menu feature is evolving from one beta version to the other. To fully use the new Shared menus features, please see the beta users page. If you use the latest regular version v8.1.1 (or before), see the section "Shared Menus for v8.1 (or before)"

Shared Menus with BETA version v8.1.9.4 (or after)

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:

Shared Menus for v8.1.1 (or before)

Yes. Add a Shared menu from the Add Favorite dialog box. Shared menus allow you to keep some of your favorites in a setting file other than the main settings file QuickAccessPopup.ini. This can be used to access some of your favorites on different PCs by sharing them using a file synchronization tool (like Dropbox). Or, in a group environment, an external settings file can be saved to an network drive and used to share common favorites in the group.

A shared menu can be made read-only to avoid editing conflicts from different users.

Adding a Shared menu

  1. To create a shared menu, in the Add Favorite dialog box, select Shared Menu and press Continue.
  2. In the Short name for menu text zone, enter the name of the new submenu.
  3. 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.
  4. *DEPRECATED since v8.1.1* In the Advanced Settings, you can set the starting number of the favorites in the file (Favorite##=...) in the Number of the first favorite zone. This can be convenient if you re-use part of an existing settings file. (NOTE: external menu files now always starting at 1; starting number in older shared menu still supported; please advise me if this cause issue.)
  5. Set Menu Options as usual and save the new favorite.


Using shared menu with multiple users
Up to v8.1.1, Quick Access Popup does not manage conflicts if a shared menu is modified by different users at the same time. If you plan to use a shared menu with other users, you should control the content of the menu centrally to avoid editing conflicts from different users. See Anatomy of a shared menu settings file below.

Anatomy of a shared menu settings file (for advanced users)

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.

Under the [Global] section of a shared menu .ini file, you can use the MenuReadOnly value to determine if the external settings file can be modified from QAP. If you plan to use a shared menu with other users, you could prefer to control the content of the menu centrally and avoid editing conflicts from different users. To make an external settings file read-only, add this setting:

[Global]
MenuReadOnly=1

By default, a shared menu is not read-only (MenuReadOnly=0)

Generating an shared menu

If you want to generate a settings file from an external application, see the structure of the favorites in a settings file: What is the structure of QAP settings (ini) file?

 

What is the structure of QAP settings (ini) file?

The following information is for advanced users who need to change the QAP settings by editing the QuickAccessPopup.ini file saved in the QAP working directory. The ini file format described in this page also applies to shared menus, exported settings file and to import settings files.

Regular users should not be required to edit these files except in rare situations described in the FAQ or in the Support page.

See these instructions on how to edit the QuickAccessPopup.ini file (to be added).

[Global] Section

This section contains settings managed in the Options dialog box or managed internally by QAP.

[Global]
LanguageCode=EN
NavigateOrLaunchHotkeyMouse=MButton
NavigateOrLaunchHotkeyKeyboard=#w
PowerHotkeyMouseDefault=+MButton
PowerHotkeyKeyboardDefault=+#A
Check4Update=1
DisplayIcons=1
DisplayMenuShortcuts=0
IconSize=32
...

See a description of these QuickAccessPopup.ini variables (to be added).

See the special [Global] values for Shared menus below.

[Favorites] Section

This section contains the favorites found in your QAP menu. It starts with the first item in your main menu ("Favorite1=...") and ends with a line with a favorite of type "Z" ("Favorite7=Z" in the following example). When a submenu is added to your menu, it starts with a line of type "Menu" and ends with a line of type "Z" ("Favorite5=Z" below) and it continues with the content of the previous menu. Submenus can be nested at will. FavoriteN numbers must be consecutive. Menu loading stops at first missing N.

For example:

[Favorites]
Favorite1=Folder|Name of folder in main menu|...
Favorite2=Document|Name of document in main menu|...
Favorite3=Menu|Submenu name|...
Favorite4=Folder|Name of folder in submenu|...
Favorite5=Z
Favorite6=Folder|Name of next folder in main menu|...
Favorite7=Z

Format of each line:

[Favorites]
FavoriteN=FavoriteType|FavoriteName|FavoriteLocation|FavoriteIconResource|FavoriteArguments|FavoriteAppWorkingDir|FavoriteWindowPosition|FavoriteLaunchWith|FavoriteLoginName|FavoritePassword|FavoriteGroupSettings

FavoriteN= where N is a number starting at 1. One favorite line contains infos delimited by | (pipe), real pipes in values being replaced with the sequence "Сþ€" in ini file for all values except fields 1, 7 and 8.

Favorite fields order an names:
1 FavoriteType
2 FavoriteName
3 FavoriteLocation
4 FavoriteIconResource
5 FavoriteArguments
6 FavoriteAppWorkingDir
7 FavoriteWindowPosition
8 FavoriteLaunchWith
9 FavoriteLoginName
10 FavoritePassword
11 FavoriteGroupSettings

Example

[Favorites]
Favorite1=Folder|Windows|C:\Windows|C:\Windows\System32\shell32.dll,298|||||||
Favorite2=Document|My Notes|C:\Docs\notes.txt||||||||

Info on the internal data structure of each element and on special uses of some items can be found on QAP's wiki (section Favorite Object Model).

[Favorites-backup] section

Each time the favorites are saved using QAP, a [Favorites-backup] section is created with the current content of the [Favorites] section. Be careful to edit the current [Favorites] section and not its backup.

Themes settings

[Gui-Grey] and other sections starting with "Gui-" are theme descriptions. More info on themes in this page: Quick Access Popup Color Themes.

[AlternativeMenuHotkeys] section

This section contains the hotkey (shortcuts) settings managed in the Alternative Menu Hotkeys tab of the Options dialog box.

[LocationHotkeys] section

This section contains the favorites hotkey (shortcuts) settings managed in Change hotkey dialog box. You can open this dialog box in the Shortcut section of the Menu Options tab in the Add/Edit Favorite dialog box or in the the Manage Hotkeys dialog box.

Import and Export ini files

The files created when your export settings comply to the format described in this page. Files imported must also comply with this format. However, they could include any or all of these settings sections: Favorites, Hotkeys, Alternative menu hotkeys, Global settings and Themes. More info on import/export commands here: Can I backup, import or export my favorites and settings?

Shared menus

Shared menu are saved in ini files complying to the format described in this page. But they contain only a [Favorites] section as described earlier and a special [Global] section with shared menu specific variables. More information about shared menu settings file: What is the content of a shared menus settings file (for advanced users)?

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

Note (March 2017): This FAQ page is actually evolving since the shared menu feature is evolving from one beta version to the other. To fully use the new features, please see the beta users page. If you use the latest regular version v8.1.1 (or before), see the section "Shared Menus for v8.1 (or before)".

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 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. Set Menu Options as usual and save the new favorite.
  5. in the Shared Menu tab, select Personal.


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 of your computers since you loaded QAP on the current computer.

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

Note (March 2017): This FAQ page is actually evolving since the shared menu feature is evolving from one beta version to the other. To fully use the new features, please see the beta users page. If you use the latest regular version v8.1.1 (or before), see the section "Shared Menus for v8.1 (or before)".

Yes. Shared menus is an easy and convient way for teams and workgroups to share links to documents, applications, folders 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 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, user is offered to add a menu from the catalogue (user 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. Set Menu Options as usual and save the new favorite.
  5. 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).


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 loaded QAP.

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

Note (March 2017): This FAQ page is actually evolving since the shared menu feature is evolving from one beta version to the other. To fully use the new features, please see the beta users page. If you use the latest regular version v8.1.1 (or before), see the section "Shared Menus for v8.1 (or before)".

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 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, user is offered to add a menu from the catalogue (user 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. Set Menu Options as usual and save the new favorite.
  5. 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):
    • Shared menu name;
    • Users with write access to this shared menu: enter one or multiple Windows logon names separated by coma;
    • Shared menu write access message: message displayed to read-only users when they try to edit the shared menu.


When read-only users when they 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 loaded QAP.

Advanced user notes: The last file modification date-time is stored in the shared ini file in the [Global] value LastModified in "yyyymmddhh24miss" format (for example "20170309224941"). The file modification date-time in the ini file is updated only when changes are done to the content itself (shared favorites or shared menu values like name, write access, etc.), preventing reservation/release actions (modifying the file's date-time without real modifications in the content) to update the date and prompt for an unrequired reload. This value should be updated if the content of the 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)?

Note (March 2017): This FAQ page is actually evolving since the shared menu feature is evolving from one beta version to the other. To fully use the new features, please see the beta users page. If you use the latest regular version v8.1.1 (or before), see the section "Shared Menus for v8.1 (or before)".

Each shared menu settings file is saved in a separate .ini files stored on a shared drive or folder. Each user can add a shared menu as for other menus using the Add Favorite button. 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:\Icons\JLicons.dll,42||C:\SharedMenus\HR_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 itself.

The shared menu settings file itself is composed of three sections:

  • [Global]: information about the 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=20170316093906
[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 (link to FAQ page to be added).

LastModified=
The last modified date-time is used to detect if a shared menu file was modified by another user since QAP was loaded. This prevents the user to edit the menu based on an older version of its content. Last file modification date-time of the shared menu ini file is taken from the file system and is be independent from various user's clocks or time zones. It is stored in the  "yyyymmddhh24miss" format (more info in AHK documentation). 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 without impacting the conflict protection. The file modification date-time in the ini file is updated only when changes are done to the content itself (shared favorites), preventing reservation/release actions modifying the file's date-time without real modifications in the content to prompt for an unrequired reload. This value should 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. It contains 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). If this value is empty, the menu is not currently reserved. When the user who reserved the menu saves or cancels his changes to the Settings, or quits QAP, the value of MenuReservedBy is erased, releasing the shared menu. 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 is it 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 coma. 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. It can be used to direct the user to the menu administrator.

Personal shared menu example

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

Collaborative shared menu example

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

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=20170309224941

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

Note (March 2017): This FAQ page is actually evolving since the shared menu feature is evolving from one beta version to the other. To fully use the new features, please see the beta users page. If you use the latest regular version v8.1.1 (or before), see the section "Shared Menus for v8.1 (or before)".

The Shared Menus Catalogue is a repository of settings files managed by menu administrators or by other workgroup members. It is designed to facilitate the addition of shared menus by users.  The settings files (.ini files) are located on a shared network drive, in one root folder (or in various subfolders in order to manage different write access).

If the Shared Menus Catalogue is enabled (see below how to enable it) when user adds a Shared menu, 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 with Yes and No buttons, 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 (General 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 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?