AutoHotkey: TC Fav Menu: Features and Installation

From TotalcmdWiki
Revision as of 14:19, 5 September 2006 by Majkinetor (talk | contribs)
Jump to: navigation, search

<style> </style>

<body lang=EN-US link=blue vlink=purple>


& Menu Editor

                      for Windows XP & 2K





FavMenu is Windows OS enhancer and application launcher. It stores information about your favorite folders and executables and let you quickly use your favorites

within system dialogs (Open/Save, Browse For Folder, Office2003 dialogs),  Console (cmd.exe),  Widows Explorer  and  Total Commander.


Format of the menu configuration file is compatibile with the Total Commander file manager directory menu, and was originaly written to work as addon for this file manager. All features of the TC directory menu are supported, including plugins and pseudovariables. Furthermore, TC doesn’t need to be started.


Menu Editor can be used to create, edit, delete and organise menu items. This is also complete replacement of TC’s internal directory menu  editor witch adds many new options. It can be used together with FavMenu or separate.


Both programs use the same ini file to store configuration, Config.ini.





You can run applications either by starting .exe or .ahk  files. To run .ahk, you must have <a href="">AutoHotKey</a> installed.

If you choose to run exe versions you can safely delete *.ahk files and \include folder.


If you want Total Commander executable and its configuration file wincmd.ini to be automaticaly recognised start FavMenu from within TC (not required if you installed TC normally or you have COMMANDER_PATH environment variable set in the system).

Make sure you have something in the TC directory menu before start using the program.






- Favmenu supports several types of menu items.  Possible menu items are ( full TC compatibility):






cd path

cd c:\program files    cd %SYSTEMROOT%\System32


cd \\\plugin

cd \\\Uninstaller      cd \\\Registry\HKEY_CURRENT_USER\Sofware


cd %$var%\path

cd  %$DESKTOP%          cd %$PERSONAL%\My Pictures




c:\boot.ini            will be resolved via associations

%w%%s%%n%              where w=C:\windows, s=\system32, n=notepad.exe

%UTILS%\Edit Plus\Editplus.exe "c:\boot.ini" "c:\1.txt"



- Enter (on menu item)


·        Open/Save, Browse For Folder or Office2003 dialog  is  active :





change the path in the dialog


open or activate TC


run the application or file


·        Console window is active:                change the current directory if path is selected or execute application / dos command

·        Any other window is active:             open or activate file manager for folders, launch an executable otherwise.



- CTRL + Enter (on menu item)

Open Properties dialog with selected item. Move around with buttons. You can change title, command and set icon.  Press Save on every individual item to save changes (title will change to notify you that save is complete).  It is much faster to use this dialog then TC's editor for single item change.


If Properties dialog is open you can use Favmenu to change the currently displayed item by calling the menu and pressing <ENTER>. So favmenu can not be used until Properties dialog is closed.


- SHIFT + Enter (on menu item)

  Open selected item in new TC tab


- CTRL + SHIFT + Enter (on menu item)

  Send path of the selected item to the active window.


- Setup dialog

On first run, Setup dialog will search for TC location in the registry and if not found it will also try  %COMMANDER_PATH%  environment variable ( if not present in the system, this variable will be instantiated by TC privately)  If setup can not find Total Commander it will use Windows Explorer as file manager.


If Favmenu didn’t find your Total Commander, specify full paths to  totalcmd.exe  and  wincmd.ini  yourself.

In case you want to start TC with parameters, create link to the totalcmd.exe and edit link info as you desire. After that specify the path to the totalcmd.lnk instead totalcmd.exe.


You can use environment variables to specify exe & ini location.

You can call this Setup dialog via the tray menu.


          - Current directories,   Editor  &   “Add current dir”  items

If Total Ccommander is open, current left & right folders will be displayed at first 2 positions. If they are the same only 1 will be visible.  If menu is called with TC active, this will not be displayed.


Add current dir item works NOT only if TC is active. It is also supported in all system dialogs (except Office) and in Console. This will surely work for all hard disk folders but you may have problems with so called virtual folders since many of them don’t have physical representation on the hard disk. You can’t use Desktop folders for now, but that may be added in the future.


Configure… item (Editor) can also be set as a last item in the menu. This method is preferable to set the Editor,  since you will not have double configuration enteries when using TCs original directory menu, because this item is not contained in the menu declaration. This also ensures that this item is always last in the menu.


All 3 special items can be enabled/disabled via Setup dialog.


- Automatic Refresh

Menu is refreshed on every call, so if you update your favorites in TC changes will be seen immediately.


- Office Dialogs

Solid support to Office 2003 Open/Save dialogs (it doesn't work if ListView is focused)

  Make sure your carret is in the edit box next to the   File Name  and you will not have any problems.


- Console Support

If cmd.exe is active window selecting path from FavMenu will change the path in the command line. If you select executable from the menu, it will be typed on the command line and executed. This allows console commands and applications to be added to the FavMenu.

For instance, you can create menu item: dir /b | sort

Menu items pointing to console commands (not applications) are NOT compatibile with Total Commander. If you need to run original TC directory menu, you will not be able to execute them.


If you want to run executables with long file names in console, you must use quotes. This is not required for non-console usage.

If you want to edit the line before posting it, you can use CTRL SHIFT ENTER.


You can NOT run console commands from the system, only if console window is active. It is pretty pointless to run them from the system, since they are executed in the context of the current command line directory. The above command can be executed from the system by changing it to: cmd /K dir /b | sort


In Setup->Integration tab you can set custom command to be executed after the directory is open. The default is set to dir /w /oGN so you are able to see contents of the folder after you change to it. You can change this to whatever you like (note that errors here will not be detected). If you want to display the folder in empty console window you can change this entery to   cls & dir /w /oGN


- Icons

You can specify an icon to display beside menu item. Icons are 12x12 with first pixel holding transparent color. You have more then 100 icons included in the package for you private use. Use relative path names when setting icons if you want them to be portable.


- Pseudovariables

  Similar to environement variables, but has slightly different syntax (%$var%, instead %var%).

  Currently supported:





Application Data


All Users\Application Data


All Users\Documents


C:\Documents and Settings\username\Desktop




Non roaming, user\Local Settings\Application Data


My Music folder


My Pictures


My Documents


C:\Program Files\Common


C:\Program Files


C:\Documents and Settings\username\Start Menu\Programs


%windir%\Resources\, For theme and other windows resources.


C:\Documents and Settings\username\Start Menu


C:\Documents and Settings\username\Start Menu\Programs\Startup.


System Directory (usualy C:\WINDOWS\System32)


Windows Directory (usualy c:\Windows)


TC NOTE: Not all above pseudovariables are currently supported but they may be in the future versions.





Menu Editor is separate application that can be used to edit & organise the menu. If you already have Config.ini created by FavMenu it will use existing configuration. If you don’t use FavMenu, Menu Editor will try to find wincmd.ini or ask you on failure.


If you want to edit single item the fastest way is to use FavMenu’s itegrated Properties dialog (CTRL ENTER).


Editor can be added to the end of the Favmenu menu via its Setup dialog.


- SHIFT Up/Down

Move an item, or entire submenu.

While moving, when you encounter submenu, if it is expanded, current item will become its child or will be removed from it.

Otherwise, item will jump over the submenu.


- F2

Change the title of an item. Use & to set a shortcut and to specify separator.



This key will redirect you to the next editable field for current item.



Press insert to add new menu item after currently selected. Hold shift to insert new submenu.

When the last item of the submenu is deleted, submenu will be turned to simple menu item.



Remove the item or complete submenu.


- Browse buttons

>> buttons can be used to speed up editing.

If the first word in the command field is “cd”, browse for directory dialog will be displayed, otherwise, browse for file. You must still press ENTER to save changes.


- Settings

If settings tab in Menu Editor is hidden, use CTRL TAB to select it. You can change the look and behavior of the editor here.




You may encounter some problems related to Total Commander interaction with the menu. It is the best to avoid using TC editor at all, since FavMenu Editor is much faster and functional plus TC editor will delete menu information about your icons if you set them. You can use “Add current dir” TC option without any problems.



-  If you have empty sub menus, script will not work.


-  If you have 2 submenu items with the same name, in order to see the second one, you must add pseudospace (ALT 0160) at the end of the title of the second one. For all subsequent items with the same name add additional pseudospace.


-  Menu is collected from the wincmd.ini [DirMenu] section. Format of this menu is:


            menuN =  title | - | -title | --

            cmdN  =  cd <path|plugin|pseudovarialbe> | executable


While building the menu, section will be iterated sequentially up to the first menuX item that doesn't exist. If, for some reason, your TC menu has "hole" in a sequence, script will rise errors or will not display the complete menu.

This menu, for instance will not work:







To make sure your menu is not messed-up, open TC Favorites configuration and click OK button. TC will rebuild the menu sequentially. If you still have problems, delete everything (backup wincmd.ini first) and create your menu again. And if you still have problems (very unlikely), visit developing forum to report this. If you have any other mistakes in menu syntax script will not work.


-  Win9x systems are not and will not be tested. If it works, cool, but if not,  don't ask for support.


-  You can setup Win key shortcuts by manualy editing Config.ini :

Edit tcKey value in TCFavMenu section. U can set  Lwin  or  Rwin  or  #letter.

          Example:      #A    - shortcut definition for Win + A so entery in Config.ini should be in this case: tcKey=#a

                             Lwin  - shortcut definition for solo left Windows key


-         FTP menu items supported by TC are not currently supported by Favmenu.

-         Target field supported by TC is not currently supported by Favmenu (seems nobody need this)



If you are AutoHotKey user, you can include Favmenu and Editor in you own scripts.

This is an example:



= 1

     SetWorkingDir <path to Favmenu>


= FavMenu_Init(g, "FavMenuSubmenu", false)


= Editor_Init(g, “”, false)


     Menu, Tray, Add, FavMenu :FavMenuSubmenu




#Include <path to Favmenu & Editor>

#Include FavMenu.ahk

#Include Editor.ahk


Init functions must be called in your autorun section to initialise scripts. Parameters are:

ByRef Param1     last GUI number used. This is automatically, just set the g to 1 and add g as a first parameter in every next Init function call. Function will return new gui number incremented with the count of GUIs used in the script

Tray submenu     Since you can run several scripts together, you set here the Tray submenu that script will use for its own menu enteries. After that, add it in the tray with the Menu command. If you leave this parameter empty, the menu will be added to the Tray itself.

Standalone         Set this to false. This flag notifies the script that it is not used standalone but as a part of merged environment.


     From this point you can use following functions:


          FavMenu_Create()        Show the FavMenu.

          Editor_Run()            Starts the editor 


          FavMenu_Options_*       set ini option, replace * with ini value from [TCFavMenu] section

          Editor_Options_*        set ini option, replace * with ini value from [Editor] section



        For instance, this will set Win + P to show FavMenu at the mouse position and Win + N to show the Editor:


          t := FavMenu_Options_MenuPos      ;save current option


= 1      ;mouse postion

          FavMenu_Create()                  ;show the menu


= t      ;restore saved option








If you want to know more about script merging see my article:

<a href="">Autohotkey: Constructive Language Criticism & Script Merging</a>




V2.0 (unreleased)

-         Added support for Browse For Folders dialogs.

-         Added support for Console ( internal console commands are also supported ).

-         Added support for Windows Explorer

-         “Add current directory” now supports Browse For Folders, Windows Explorer and Console.

-         New setup options – integration tab – select where do you want Favmenu to appear.

-         Added left click on the tray icon to launch FavMenu from the tray.

-         Added custom tray icons for enabled and dissabled state. You can change them in res folder.

-         Added “change item” text in Properties dialog. Click on it to select next item to edit via FavMenu.

-         Changed Enter key behavior in Editor: it is no longer needed in Editor to press Enter on every changed item.

Items are saved per keypress. Everything is saved after Save button is pressed.


V1.1 (21. Avgust 2006)

-         Add current directory is available in dialogs also (except Office dialogs). Previous version had this item only if TC was active. It will surely work for hard disk folders and My Documents virtual folder. It doesn’t work for Desktop.

-         CTRL SHIFT ENTER on menu item will paste that item in active window.

-         Dialog handling improvements and bug fixes. Sometimes you could get redirected to TC when using Favmenu in dialogs without a reason.

-         Added Total Commander hook to “Current Directory” header: double click on it will open Favmenu preventing original TC menu. [*] button is not hooked.

-         Changed Properties dialog: when open, using FavMenu will switch the Properties view to that item thus making editing of particular item much faster.





-         FTP user name & password in menu command.

-         Hook for * button in TC

-         Mouse call in dialogs

-         Large icons




Created by Miodrag Milic

in <a href="">AutoHotKey</a> <>

using Windows XP Pro



e-mail:         <a href=""></a>

homepage:   <a href=""></a>  |  <a href="Utils/_Scripts/autohotkey/TC/TcFavMenu/Utils/_Scripts/autohotkey/TC/TcFavMenu/"></a>   |  <a href=""></a>


Belgrade, Jun 2006