Min2Tray - changelog (and some sort of manual) -- * fixed bug ## + added feature ## - removed feature ;-/ ## . comment -- _v1.7.9, 2011/10/11 + new feature: use right mouse click on the close button of the window's titlebar to minimize it. this is not totally foolproof as we assume that the close button is always in the upper rightmost corner of the window, but then, who has a different setup on windows, anyways [thx franc] + added check for presence of 2-button mouse (Mac, anyone? :-) + from the path where <name.exe> is located use <name.ico> (if existing) as tray icon of the minimized window [thx franc] * fixed bugs with middle mouse click behaviour on titlebar and on desktop if no window is visible * replaced functions f_SubstEvilClass(), f_FindFile() and subroutine h_ChangeIcon by much faster routines from Forms Framework v0.8 by majkinetor (New BSD and GPLv2 licenses), see: <https://code.google.com/p/mm-autohotkey/> [thx majkinetor] - removed option to add an application's window to "evil class" substitution list. superseded by new f_GetOwnerOrSelf() function that replaces f_SubstEvilClass() . renamed Opt-Out/Opt-In modes to Blacklist/Whitelist modes . Min2Tray.exe compiled with AutoHotkey v1.0.48.05 _v1.7.8, 2011/09/20 + f_KeyWaitModifiers() added: before un-minimizing a window from tray icon wait for user to release modifier keys like WIN, ALT, CTRL, SHIFT + option to add an application's window to "evil class" substitution list via "Eliminate left over button from task bar." this does not always work reliably, it's more trial-and-error * f_SubstEvilClasses(): added some generic classes [thx franc] * made ZIRKUMFLEX and AKUT appear again in h_SetHotkeyStarter by modifying f_ComposeHotkey() * new interval settings: max = 10000 ms, default = 2000 ms * more fixes and code cleanups - removed French translation. no update/maintainer since v1.7.3 - removed experimental feature "one hotkey per window" known from the beta versions of Min2tray v1.7.8: there were some problems with inter-process communication and no proper user interface for hotkey assignment. may return sometime in future ;-/ . Min2tray.ahk will run with AutoHotkey_L (v1.1.03.00 and up) but text may be unreadable. This is an unicode-related problem . Min2Tray.exe compiled with AutoHotkey v1.0.48.05 _v1.7.7, 2008/02/13 + custom hotkey to display preferences window of starter. defaults to CTRL+WIN+ALT+P [thx alex howard] + option to globally disable minimizing to taskbar of any window prior to hiding it (skips the annoying "zapping" or "fading" effect). USE WITH CAUTION, some windows don't like it! one should rather disable taskbar "zapping" on a per window basis via tray menu (preferences) of that particular window. or even better: turn off all those flashy but useless effects in MS Windows' display properties dialog for all applications! . Min2Tray.exe compiled with AutoHotkey.exe v1.0.47.05 _v1.7.6, 2008/01/23 + preferences window now contains a slider to adjust transparency level for always-on-top [thx MN-NY] * f_IsForbiddenWinClass(): improvements and speed up by factor 5 (realised that "if Var in MatchList" was way slower than InStr()) * some beautifications to the GUI . Min2Tray.exe compiled with AutoHotkey.exe v1.0.47.05 . there are a couple of GUI-texts needing translation to French . some virus scanners for MS Windows (namly AVG Free Edition v7) blame Min2Tray.exe (v1.7.5.xmas edition) to contain a trojan horse. this is definitly not true! it must be a false-positive alarm of the scanner's heuristic engine or a faulty virus signature _v1.7.5.xmas edition, 2007/11/27 ! this is a special christmas edition of Min2Tray. run Min2Tray.exe within the season and play around with the BossKey to get a surprise + option to require double-mouse-click on the tray icon to show a minimized window again (single-click is the default) + new TriggerAction: re-activate remembered last activate window (when showing a minimized window again, by default it will cover the last active window. this new TA will bring the covered window to front again) * nothing happened if no window was active and the user wanted to minimize one. now Min2Tray re-activates the last active window (most of the time the frontmost and desired one) and attempts to minimize it * if user requests BossKey to use MultiWindows mode then a new helper in MultiMode will be created now even if only one window gets minimized. this makes it reliable possible to use the same hotkey for BossKey and for un-minimizing the BossKey'ed window(s) again * StartupMinimize didn't like the "minimize window immediately" option presented in version 1.7.3 - now SM behaves correctly again * gray out text input field if use of custom name is disabled . Min2Tray.exe compiled with AutoHotkey.exe v1.0.47.05 _v1.7.4, 2007/11/01 + new BossKey mode: Topmost - minimize all windows except the topmost (active) one [thx Dean] + more actions for TriggerAction: write or delete a registry value or subkey below HKEY_CURRENT_USER, manipulate StealthMode . changed internal handling of Evil Classes (now a function) and made some more code clean-ups and improvements . Min2Tray.exe compiled with AutoHotkey.exe v1.0.47.04 _v1.7.3, 2007/08/27 * some minor GUI and bug fixes * changed default for third mouse button handling to titlebar click * changed handling of required AHK version and StartupMinimize * added tooltips_class32 to list of "forbidden" window classes + more actions for TriggerAction: make window always-on-top, remove buttons from window's titlebar, maximize window, position window, minimize window, activate window, more ways to send keystrokes to window (or its controls), manipulate internal timer of helper + StartupMinimize can now (despite its name) not only minimize a window but also assign TriggerActions to windows without minimizing them. so you can make a window always-on-top, maximize it or position it at will on startup of Min2Tray [thx azure] + adjustable transparency for always-on-top. set it in registry under: 'HKEY_CURRENT_USER\Software\KTC\Min2Tray\Starter' (default location) 'TransparentAOT' REG_SZ '210' no value or 0 (zero) is the default meaning no transparency at all. other valid values may be in the range of 1 (totally transparent) to 255 (visible) [thx azure] + user may force a language ('de', 'fr', 'en') via registry setting: 'HKEY_CURRENT_USER\Software\KTC\Min2Tray\Misc' (default location) insert: 'ForceLanguage' REG_SZ 'fr' + ShowOnTitleChange improved: option for using Regular Expressions to match title of window to be automatically un-minimized. use this to un-minimize a window only if title contains i.e. "100% - done" + UserMenu: add custom menu entries to the tray icon. you will be able to utilize all TriggerActions here, yeah! currently no GUI. use the registry force, Luke: 'HKEY_CURRENT_USER\Software\KTC\Min2Tray' (default location): 'OUTLOOK.EXE|rctrl_renwnd32|uml1' REG_SZ '&New mail' 'OUTLOOK.EXE|rctrl_renwnd32|uma1' REG_SZ 'key1:^n' 'OUTLOOK.EXE|rctrl_renwnd32|umk1' REG_SZ '#^N' | | | | | |_ uml# = UserMenuLabel | | |_ uma# = UserMenuAction | | |_ umk# = UserMenuHotkey (optional) | | |_ # = on-counting number (1-25) | | must be the same for a pair/triple | | of uml# and uma# (and umk#) | |_ class of a window |_ process name (usually name of executable file) have a look into file "UserMenu-Examples.reg.txt" for inspiration + user may choose to disable minimizing of windows to taskbar prior to hiding them. use this feature on windows of programs that would otherwise hide their windows on their own, for example MS Outlook 2003. you can enable this feature via preferences menu of the minimized window. it'll be stored in the registry under: 'HKEY_CURRENT_USER\Software\KTC\Min2Tray' (default location): 'OUTLOOK.EXE|rctrl_renwnd32|nm' REG_SZ '1' | | | | | |_ nm = NoMinimize | |_ class of a window |_ process name (usually name of executable file) class and trailing '|' can be omited to generate a 'generic' entry. . updated French translation by Andreone and translate.google.com ;-] . new license: GNU GENERAL PUBLIC LICENSE version 3 from 29 June 2007 . Min2Tray.exe compiled with AutoHotkey.exe v1.0.47.03 _v1.7.2, 2007/03/01 * assignment of hotkeys fixed (sometimes old binding was not removed) * re-design of preferences windows (helper: all in one place now) * BossKey/StartupMinimize list improved (edit button added) * improved prefs-GUI handling (auto-reactivation of owner window) * language related stuff is now easier to maintain (see Min2Tray.ahk) + StartupMinimize: when Min2Tray starts up it can now scan for windows to be minimized at once. you can set the check interval and the time span for how long Min2Tray will check for those windows. adding a window to the list of windows to be minimized on startup is done via options menu of the minimized window (that of course means you first have to minimize it at least one time by hand ;-) StartupMinimize list keeps track of all those windows, look there + TriggerActions: actions can be triggered before/after BossKey runs, after a window is minimized, before a window is un-minimized or closed and after a window's title changed. [thx Demokos] right now actions can be: mute/unmute/toggle mute of master volume, play sound/wav, show message, send key presses, sleep, run/runwait program. you can even start several actions at once. TriggerActions can be globally enabled or disabled via preferences window of Min2Tray + when using BossKey or StartupMinimize you can now even refine the search for certain windows to be minimized by stating a window title or ID. open BossKey or StartupMinimize list, select the desired entry and hit the edit button. in the appearing window you can change the class and/or window title or ID as you like. for the interrested ones - corresponding registry entries are: 'HKEY_CURRENT_USER\Software\KTC\Min2Tray' (default location) 'notepad.exe|Notepad|bk_wt' REG_SZ 'winID1|winID2|winTIT1|winTIT2' 'notepad.exe|Notepad|sm_wt' REG_SZ 'winID1|winID2|winTIT1|winTIT2' | | | |_ winID* could be '0x1401ca' | | | | (same as AHK's "ahk_id") | | | |_ winTIT* can be something like | | | 'secret window' or 'boss' | | |_ bk_wt = window title/ID for BossKey | | |_ sm_wt = window title/ID for StartupMinimize | |_ unique ID number (HWND/handle) of a window |_ process name (usually name of executable file) + hotkey for maximizing a window horizontally [thx Demokos] + added debug facility (f_DebugLog(), '...\Misc\DebugMode' REG_SZ '1') . Min2Tray.exe compiled with AutoHotkey.exe v1.0.46.08 _v1.7.1, 2006/09/06 * you can now remove more than just one window via menu "Edit BossKey list" + French translation by Demokos (l10n starts off!) + NoButtons feature: define a hotkey to remove all buttons (SysMenu) from a window's titlebar or add them again [thx mrnovember] + hotkey or CTRL+SHIFT+third mouse button to quickly add/remove the currently active window to/from BossKey list. [thx Demokos] keyboard hotkey is customizable via preferences. mouse hotkey can be customized in the registry under: 'HKEY_CURRENT_USER\Software\KTC\Min2Tray\Starter' (default location) 'HotkeyBossKeyAddMouse' REG_SZ '!MButton' and ALT+MButton is the new hotkey (AutoHotkey style; see its FAQ) . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.10 _v1.7.0, 2006/08/25 * major redesign of internal control logic (helper, starter, BossKey). enables Min2Tray to be more flexible. one helper (aka icon) can now minimize and maintain multiple windows at once. though there is no shiny gui for this option, yet. only BossKey mode can use this feature ATM * more minor code changes (linear code to functions, win re-activation, checking of command line and menu name length) + hiding of multiple windows to one single icon (aka helper) is possible. this feature is labeled 'MultiWindow mode' or 'MultiMode' + option for BossKey to hide to multiple icons or just one icon. with one icon you get a sub menu showing all the minimized windows. clicking an entry unhides this particular window again . ideas how to utilize MultiMode with help of a gui are highly welcome . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.09 _v1.6.6, 2006/08/07 * improved re-activation behaviour of the next open window, again ;-) * some minor code changes (lock file, error messages) + StealthMode hotkey customisable within preferences window [thx Chad] + StealthMode can be made session only (default) or permanent . included my recommendations for some user settings in prefs window . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.08 _v1.6.5, 2006/08/03 * again a rework of BossKey feature. windows now vanish much quicker off the desktop [thx Chad] * changed activation behaviour of the next window on stack after minmizing the foremost window + option for auto-switching into StealthMode when using BossKey (no more tons of visible and suspicious icons) [thx Demokos] remember: CTRL+WIN+ALT+PageUp toggles StealthMode on/off! + some programs (as PSPad) behave a little strange when Min2Tray hides them. there remains a button (minimized to the taskbar, no function). this seems to happen due to the fact that Min2Tray grabs the wrong window class (there are several in those programs) and hides the associated window. my counter measure: manual substitution with the right class. classes to be substituted will be read from the registry under 'HKEY_CURRENT_USER\Software\KTC\Min2Tray' (default location): 'PSPad.exe|TfPSPad|ec' REG_SZ 'TApplication' | | | |_ new 'good' class name | | |_ ec = Evil Class | |_ class of a window (evil, to be substituted) |_ process name (usually name of executable file) this is a solution for a very special problem, but it occurs ITW . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.08 _v1.6.4, 2006/08/02 * BossKey feature should now work a bit smoother [thx Chad] + option to disable all error messages (not recommended) . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.08 _v1.6.3, 2006/07/16 * unexpected ending of starter now cleans up lockfile * removed need for 3 button mouse to start Min2Tray [thx Chad] . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.07 _v1.6.2, 2006/06/21 * changed some menu entries and texts + show a hidden window automatically when title changed (nifty for hidden chat windows with activity). setting will be written to the registry under 'HKEY_CURRENT_USER\Software\KTC\Min2Tray' (default location) in the following style: 'notepad.exe|Notepad|sotc' REG_SZ 'Notepad Window' | | |_ sotc = ShowOnTitleChange | |_ unique ID number (HWND/handle) of a window |_ process name (usually name of executable file) + ForcedMode now influences maximizing a window vertically . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.06 _v1.6.1, 2006/06/14 * re-arranged preferences window + hotkey for maximizing a window vertically (nifty for big screens) . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.06 _v1.6, 2006/06/12 * some glitches fixed, transition to #NoEnv mode + hotkey for setting active window to always-on-top + you can disable all visible notifications (tray tip) in the registry under 'HKEY_CURRENT_USER\Software\KTC\Min2Tray\Misc' (default location), insert: 'DontBugMe' REG_SZ '1' . Min2Tray.exe compiled with AutoHotkey.exe v1.0.44.06 _v1.5.4, 2006/04/25 * some minor bugs fixed (support for more icon file types, ForcedMode) + new option: auto prompt for custom name if none is present [thx Jaakon] . Min2Tray.exe compiled with AutoHotkey.exe v1.0.43.09 _v1.5.3, 2006/04/11 * after unhiding window with hotkey that includes modifier WIN the ms windows desktop recognized a keypress of WIN and the startmenu opened up * fixes in icon selection dialog (double click without selected icon, centered file selector window) . Min2Tray.exe compiled with AutoHotkey.exe v1.0.43.06 _v1.5.2, 2006/04/06 * some code cleanup and re-writing, possibly lowering memory usage and initialisation time + dialog for icon selection now with buttons, wow! . Min2Tray.exe compiled with AutoHotkey.exe v1.0.43.04 _v1.5, 2006/03/27 * finally! Min2Tray got its own icon, a rolled-down window, yeah [thx GIMP] * wrong iconfile was displayed after cancelling icon-change dialog + ForcedMode feature: minimize windows without "MinimizeBox" or "SysMenu". using this feature is not recommended and off by default + new icon-change dialog for files with multiple icons (mostly EXE or DLL). user can now select any icon packed into that file (try "shell32.dll") + better hotkey dialog field. user can now specify meta-key WIN, too + GUI for editing BossKey list (selective removing of entries now possible) + custom icon for Min2Tray. put a icon file named "Min2Tray.ico" in the directory where the script/executable is located and enjoy _v1.4, 2006/03/15 * window could be hidden several times by Min2Tray via hotkey, tray icon was created every time * disabled hiding of windows that are children of others * redesigned much of the dialog windows to be more user friendly + BossKey feature - hide all visible windows with one key-press, extremely useful for all you pr0n-@-w0rk surfers out there 8-) there are two options: you can explicitly include only known windows to be hidden (Opt-In mode) _OR_ you can exclude known windows from being hidden, all others are hidden (Opt-Out mode and default). you can add/remove windows to/from the BossKey list via tray menu of the minimized window. there is also a option for purging the entire list in the tray menu of the main application + StealthMode feature - Min2Tray does not show any tray icons. you can toggle this behaviour by pressing CTRL+WIN+ALT+PageUp. keep this hotkey remembered :-) you could even change the hotkey by editing the registry under 'HKEY_CURRENT_USER\Software\KTC\Min2Tray\Starter' (default location), insert: 'HotkeyStealth' REG_SZ '!3' and ALT+3 is the new hotkey. hotkey definition uses the usual AutoHotkey style (see its FAQ) + new option: third mouse button can now be pressed everywhere to minimize the active window, not only on titlebar [thx drunknbass] + you can change the update interval for checking for closed windows or changed titles by editing the registry under: 'HKEY_CURRENT_USER\Software\KTC\Min2Tray\Misc' (default location), insert: 'CheckForWinEveryMiliSec' REG_SZ '2500' and the update interval will be 2,5 seconds (this is also the default). possible values range from 200 to 1000000 miliseconds _v1.3, 2006/01/18 + user can now define a hotkey for minimizing windows + user can now decide if she wants to use third mouse button for minimizing + every minimized window can now have its own hotkey for un-hiding. this feature is customizable via tray menu of the hidden window and the hotkey will be written to the registry under 'HKEY_CURRENT_USER\Software\KTC\Min2Tray' (default location) in the following style: 'notepad.exe|Notepad|ch' REG_SZ 'Notepad Window' | | |_ ch = custom hotkey | |_ unique ID number (HWND/handle) of a window |_ process name (usually name of executable file) _v1.2, 2006/01/17 + if minimized window is re-opened by corresponding program Min2Tray now terminates its helper accordingly (AdobeReader, MDI windows) _v1.1, 2005/07/21 * if closing minimized window corresponding program was sometimes not terminated correctly and resisted in memory (opera.exe) + tray and menu title get updated if window title of minimized window changes + Min2Tray main program can now only be started once (lockfile used) [thx Titan] + icon of minimized window gets removed if corresponding program terminated + name of tray and menu title can be customized + one can now define 'generic' icons and names for all windows of one program. this feature has no menu entry (, yet?). it is controlled via registry. under 'HKEY_CURRENT_USER\Software\KTC\Min2Tray' (default location) you find entries in the following form (if you have already used the features for customizing name and icon): 'notepad.exe|Notepad|cn' REG_SZ 'Notepad Window' 'notepad.exe|Notepad|ci' REG_SZ 'C:\WINDOWS\system32\notepad.exe|1' | | |_ cn = custom name; ci = custom icon | |_ unique ID number (HWND/handle) of a window |_ process name (usually name of executable file) defining a 'generic' icon or name is as easy as ABC - just leave out the unique ID number (HWND/handle) and the trailing '|': 'notepad.exe|cn' REG_SZ 'Notepad Generic' 'notepad.exe|ci' REG_SZ 'C:\WINDOWS\system32\notepad.exe|1' . good to know: you can change the icon number for the icon to be displayed via registry by modifying the last number of those 'progname|hwnd|ci'-entries: 'notepad.exe|Notepad|ci' REG_SZ 'C:\WINDOWS\system32\notepad.exe|1' this is the number of the icon to be displayed _| _v1.0, 2005/07/11 . initial release