*** LinkKey readme.txt
Copyright (c) 2010 Lincoln Yeoh (License: BSD style)
Other parts derived from Spambayes are "Copyright (c) 2002-2004 Python Software Foundation; All Rights Reserved"
And some hotkey parts are derived from Tim Golden and Richie Hindle: http://timgolden.me.uk/python/win32_how_do_i/catch_system_wide_hotkeys.html
( no copyright notice, so assumed to be public domain or under PSFL)
*** Getting started
You should see a new systray icon.
If you get an error message that looks like:
"This application is not configured properly. Reinstalling the application may help"
Or "This application has failed to start because MSVCR90.dll was not found. Re-installing the application may fix this problem. "
This means you need the MSVCR90.dll file which I cannot distribute legally.
This is included in the "Microsoft Visual C++ 2008 Redistributable Package (x86)"
Which you can download from: http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
Note: I am not sure if "Microsoft Visual C++ 2008 Redistributable Package (x86)" or "Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)" is required.
*** Key combos
A key combo is when you press more than one key at the same time.
For example the winkey+"5" key combo is holding down winkey and pressing 5 (from the top number row of the keyboard - not the number pad).
*** Quick-linking windows to key combos
Press winkey+"0" to link all windows to keycombos, in order of most recently used window to 9th recently used.
Basically when you press both winkey and zero, the current foreground window will be linked to winkey+"1", the next most recently used window will be linked to winkey+"2", and so on till winkey+"9".
So if you click on a bunch of windows, and then press winkey+"0" they will be assigned 1-9 in the reverse order of your clicking - the last raised window will be winkey+"1", the next will be winkey+"2". And this linking will remain till you change it.
For example, if you click on Minesweeper, Paint, then Notepad, then IE, then press winkey+"0", from now on pressing winkey+"2" will raise the Notepad window to the foreground and make it active. Pressing winkey+"4" will raise Minesweeper, winkey+"5" will raise the window that was used before Minesweeper. This linking will remain till winkey+"0" is pressed again (then the linking will follow the latest order), or by the other methods mentioned further below.
*** Directly mapping a keycombo to a window
First, click on the desired window to make it the current window.
winkey+shift+"1" will link the current window to winkey+"1"
winkey+shift+"2" will link the current window to winkey+"2"
winkey+shift+"9" will link the current window to winkey+"9"
*** Linking the last used keycombo to previous/current window
Normally when you press winkey+"=" the previous window and last used keycombo will be linked.
For example, say you want to link a window to winkey+"5". What you do is click on the window you want to link, press winkey+"5" (which raises the current winkey+"5" window) and then press winkey+"=" (equals sign), this will link the desired window to winkey+"5" (and raise that window).
This is the normal behaviour of LinkKey (Linking is to previous window).
However if you right click on the LinkKey tray icon and deselect "Linking is to previous window" the behaviour will change- then linking will be to the _current_ window instead. In this case if you want to link a window to winkey+"5", you press winkey+"5" (this raises the current winkey+"5" window) then you click on the window you want to link, once the desired window is raised, you press winkey+"=" and then winkey+"5" will now raise that window.
*** Changing banks
winkey+"-" switches to the next keycombo-to-window bank.
By default there are two banks (bank 0 and bank 1), the starting bank is bank 0.
If you press winkey+0 the keycombo to window links will be stored in the current bank.
And when you press winkey+<number> the window to raise is taken from the current bank.
Say you start LinkKey, all the banks will be empty and the current bank is bank 0 - which means that all keycombos will be saved and read from bank 0.
So if you click on a bunch of windows and press winkey+"0", the keycombo and window links are stored in bank 0, and pressing winkey+<1-9> will raise the relevant windows.
But if you press winkey+"-" that switches to the next bank, bank 1- all keycombos will now be saved and read from bank 1. Bank 1 will be blank so nothing happens when you press winkey+<1-9>. If you click on another set of windows and press winkey+"0", this new keycombo to window links will be stored in bank 1.
Pressing winkey+"-" again will switch to the next bank after bank 1, and in the normal configuration, you will now be back to bank 0. And the previous "bank 0" keycombos to window links will be restored.
winkey+shift+"-" switches to the previous bank.
*** The LinkKey menu
1) Disable LinkKey - if set to disabled LinkKey should ignore all keycombos.
2) Use WinKey - use the "Windows Key" as the basekey for key combos
3) Use AltKey - use the "Alt Key" as the basekey for key combos
4) Linking is to previous window - see above section "*** Linking the last used keycombo to previous/current window"
5) About LinkKey - shows the "About LinkKey" message and makes an annoying beep (sorry I haven't got around to making a proper Dialog and thus fixing this).
6) Exit LinkKey - tell LinkKey to quit and stop running.
You should be able to find an example linkkey.cfg included in the package, but this configuration file is optional.
To use the configuration file, edit linkkey.cfg and change the settings accordingly and then place linkkey.cfg in current directory or in %%USERPROFILE%%\Local Settings\Application Data\LinkKey\linkkey.cfg
*** Copyright and License
 LinkKey is Copyright (c) 2010 Lincoln Yeoh
(other parts derived from Spambayes are "Copyright (c) 2002-2004 Python Software Foundation; All Rights Reserved",
and some hotkey parts are derived from Tim Golden and Richie Hindle: http://timgolden.me.uk/python/win32_how_do_i/catch_system_wide_hotkeys.html
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EV
EN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20110104LY linkkey v0.1.13
if hotkey is pressed for first time should behave as if alt-0 pressed first.
20100220LY linkkey v0.1.12
Increase atom buffer from 64 to 300
20100215LY linkkey v0.1.11
WS_EX_APPWINDOW can have owners
This might be clearer than MS's docs: http://www.upokecenter.com/articles.php?item=1201581639
20100123LY linkkey v0.1.10
Option to auto-disable when in full-screen mode
Removed old fullscreen code
Now use GetMessageW and DispatchMessageW (no idea if this is actually better :) just guessing)