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: <http://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

Min2Tray/ChangeLog (last edited 2016-02-25 by Junyx)