|
@@ -1,230 +1,230 @@
|
|
-; On-Screen Keyboard (requires XP/2k/NT) -- by Jon
|
|
+; On-Screen Keyboard (requires XP/2k/NT) -- by Jon
|
|
-; http://www.autohotkey.com
|
|
+; http://www.autohotkey.com
|
|
-; This script creates a mock keyboard at the bottom of your screen that shows
|
|
+; This script creates a mock keyboard at the bottom of your screen that shows
|
|
-; the keys you are pressing in real time. I made it to help me to learn to
|
|
+; the keys you are pressing in real time. I made it to help me to learn to
|
|
-; touch-type (to get used to not looking at the keyboard). The size of the
|
|
+; touch-type (to get used to not looking at the keyboard). The size of the
|
|
-; on-screen keyboard can be customized at the top of the script. Also, you
|
|
+; on-screen keyboard can be customized at the top of the script. Also, you
|
|
-; can double-click the tray icon to show or hide the keyboard.
|
|
+; can double-click the tray icon to show or hide the keyboard.
|
|
-
|
|
+
|
|
-;---- Configuration Section: Customize the size of the on-screen keyboard and
|
|
+;---- Configuration Section: Customize the size of the on-screen keyboard and
|
|
-; other options here.
|
|
+; other options here.
|
|
-
|
|
+
|
|
-; Changing this font size will make the entire on-screen keyboard get
|
|
+; Changing this font size will make the entire on-screen keyboard get
|
|
-; larger or smaller:
|
|
+; larger or smaller:
|
|
-k_FontSize = 10
|
|
+k_FontSize = 10
|
|
-k_FontName = Verdana ; This can be blank to use the system's default font.
|
|
+k_FontName = Verdana ; This can be blank to use the system's default font.
|
|
-k_FontStyle = Bold ; Example of an alternative: Italic Underline
|
|
+k_FontStyle = Bold ; Example of an alternative: Italic Underline
|
|
-
|
|
+
|
|
-; Names for the tray menu items:
|
|
+; Names for the tray menu items:
|
|
-k_MenuItemHide = Hide on-screen &keyboard
|
|
+k_MenuItemHide = Hide on-screen &keyboard
|
|
-k_MenuItemShow = Show on-screen &keyboard
|
|
+k_MenuItemShow = Show on-screen &keyboard
|
|
-
|
|
+
|
|
-; To have the keyboard appear on a monitor other than the primary, specify
|
|
+; To have the keyboard appear on a monitor other than the primary, specify
|
|
-; a number such as 2 for the following variable. Leave it blank to use
|
|
+; a number such as 2 for the following variable. Leave it blank to use
|
|
-; the primary:
|
|
+; the primary:
|
|
-k_Monitor =
|
|
+k_Monitor =
|
|
-
|
|
+
|
|
-;---- End of configuration section. Don't change anything below this point
|
|
+;---- End of configuration section. Don't change anything below this point
|
|
-; unless you want to alter the basic nature of the script.
|
|
+; unless you want to alter the basic nature of the script.
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-;---- Alter the tray icon menu:
|
|
+;---- Alter the tray icon menu:
|
|
-Menu, Tray, Add, %k_MenuItemHide%, k_ShowHide
|
|
+Menu, Tray, Add, %k_MenuItemHide%, k_ShowHide
|
|
-Menu, Tray, Add, &Exit, k_MenuExit
|
|
+Menu, Tray, Add, &Exit, k_MenuExit
|
|
-Menu, Tray, Default, %k_MenuItemHide%
|
|
+Menu, Tray, Default, %k_MenuItemHide%
|
|
-Menu, Tray, NoStandard
|
|
+Menu, Tray, NoStandard
|
|
-
|
|
+
|
|
-;---- Calculate object dimensions based on chosen font size:
|
|
+;---- Calculate object dimensions based on chosen font size:
|
|
-k_KeyWidth = %k_FontSize%
|
|
+k_KeyWidth = %k_FontSize%
|
|
-k_KeyWidth *= 3
|
|
+k_KeyWidth *= 3
|
|
-k_KeyHeight = %k_FontSize%
|
|
+k_KeyHeight = %k_FontSize%
|
|
-k_KeyHeight *= 3
|
|
+k_KeyHeight *= 3
|
|
-k_KeyMargin = %k_FontSize%
|
|
+k_KeyMargin = %k_FontSize%
|
|
-k_KeyMargin /= 6
|
|
+k_KeyMargin /= 6
|
|
-k_SpacebarWidth = %k_FontSize%
|
|
+k_SpacebarWidth = %k_FontSize%
|
|
-k_SpacebarWidth *= 25
|
|
+k_SpacebarWidth *= 25
|
|
-k_KeyWidthHalf = %k_KeyWidth%
|
|
+k_KeyWidthHalf = %k_KeyWidth%
|
|
-k_KeyWidthHalf /= 2
|
|
+k_KeyWidthHalf /= 2
|
|
-
|
|
+
|
|
-k_KeySize = w%k_KeyWidth% h%k_KeyHeight%
|
|
+k_KeySize = w%k_KeyWidth% h%k_KeyHeight%
|
|
-k_Position = x+%k_KeyMargin% %k_KeySize%
|
|
+k_Position = x+%k_KeyMargin% %k_KeySize%
|
|
-
|
|
+
|
|
-;---- Create a GUI window for the on-screen keyboard:
|
|
+;---- Create a GUI window for the on-screen keyboard:
|
|
-Gui, Font, s%k_FontSize% %k_FontStyle%, %k_FontName%
|
|
+Gui, Font, s%k_FontSize% %k_FontStyle%, %k_FontName%
|
|
-Gui, -Caption +E0x200 +ToolWindow
|
|
+Gui, -Caption +E0x200 +ToolWindow
|
|
-TransColor = F1ECED
|
|
+TransColor = F1ECED
|
|
-Gui, Color, %TransColor% ; This color will be made transparent later below.
|
|
+Gui, Color, %TransColor% ; This color will be made transparent later below.
|
|
-
|
|
+
|
|
-;---- Add a button for each key. Position the first button with absolute
|
|
+;---- Add a button for each key. Position the first button with absolute
|
|
-; coordinates so that all other buttons can be positioned relative to it:
|
|
+; coordinates so that all other buttons can be positioned relative to it:
|
|
-Gui, Add, Button, section %k_KeySize% xm+%k_KeyWidth%, 1
|
|
+Gui, Add, Button, section %k_KeySize% xm+%k_KeyWidth%, 1
|
|
-Gui, Add, Button, %k_Position%, 2
|
|
+Gui, Add, Button, %k_Position%, 2
|
|
-Gui, Add, Button, %k_Position%, 3
|
|
+Gui, Add, Button, %k_Position%, 3
|
|
-Gui, Add, Button, %k_Position%, 4
|
|
+Gui, Add, Button, %k_Position%, 4
|
|
-Gui, Add, Button, %k_Position%, 5
|
|
+Gui, Add, Button, %k_Position%, 5
|
|
-Gui, Add, Button, %k_Position%, 6
|
|
+Gui, Add, Button, %k_Position%, 6
|
|
-Gui, Add, Button, %k_Position%, 7
|
|
+Gui, Add, Button, %k_Position%, 7
|
|
-Gui, Add, Button, %k_Position%, 8
|
|
+Gui, Add, Button, %k_Position%, 8
|
|
-Gui, Add, Button, %k_Position%, 9
|
|
+Gui, Add, Button, %k_Position%, 9
|
|
-Gui, Add, Button, %k_Position%, 0
|
|
+Gui, Add, Button, %k_Position%, 0
|
|
-Gui, Add, Button, %k_Position%, -
|
|
+Gui, Add, Button, %k_Position%, -
|
|
-Gui, Add, Button, %k_Position%, =
|
|
+Gui, Add, Button, %k_Position%, =
|
|
-Gui, Add, Button, %k_Position%, Bk
|
|
+Gui, Add, Button, %k_Position%, Bk
|
|
-
|
|
+
|
|
-Gui, Add, Button, xm y+%k_KeyMargin% h%k_KeyHeight%, Tab ; Auto-width.
|
|
+Gui, Add, Button, xm y+%k_KeyMargin% h%k_KeyHeight%, Tab ; Auto-width.
|
|
-Gui, Add, Button, %k_Position%, Q
|
|
+Gui, Add, Button, %k_Position%, Q
|
|
-Gui, Add, Button, %k_Position%, W
|
|
+Gui, Add, Button, %k_Position%, W
|
|
-Gui, Add, Button, %k_Position%, E
|
|
+Gui, Add, Button, %k_Position%, E
|
|
-Gui, Add, Button, %k_Position%, R
|
|
+Gui, Add, Button, %k_Position%, R
|
|
-Gui, Add, Button, %k_Position%, T
|
|
+Gui, Add, Button, %k_Position%, T
|
|
-Gui, Add, Button, %k_Position%, Y
|
|
+Gui, Add, Button, %k_Position%, Y
|
|
-Gui, Add, Button, %k_Position%, U
|
|
+Gui, Add, Button, %k_Position%, U
|
|
-Gui, Add, Button, %k_Position%, I
|
|
+Gui, Add, Button, %k_Position%, I
|
|
-Gui, Add, Button, %k_Position%, O
|
|
+Gui, Add, Button, %k_Position%, O
|
|
-Gui, Add, Button, %k_Position%, P
|
|
+Gui, Add, Button, %k_Position%, P
|
|
-Gui, Add, Button, %k_Position%, [
|
|
+Gui, Add, Button, %k_Position%, [
|
|
-Gui, Add, Button, %k_Position%, ]
|
|
+Gui, Add, Button, %k_Position%, ]
|
|
-Gui, Add, Button, %k_Position%, \
|
|
+Gui, Add, Button, %k_Position%, \
|
|
-
|
|
+
|
|
-Gui, Add, Button, xs+%k_KeyWidthHalf% y+%k_KeyMargin% %k_KeySize%, A
|
|
+Gui, Add, Button, xs+%k_KeyWidthHalf% y+%k_KeyMargin% %k_KeySize%, A
|
|
-Gui, Add, Button, %k_Position%, S
|
|
+Gui, Add, Button, %k_Position%, S
|
|
-Gui, Add, Button, %k_Position%, D
|
|
+Gui, Add, Button, %k_Position%, D
|
|
-Gui, Add, Button, %k_Position%, F
|
|
+Gui, Add, Button, %k_Position%, F
|
|
-Gui, Add, Button, %k_Position%, G
|
|
+Gui, Add, Button, %k_Position%, G
|
|
-Gui, Add, Button, %k_Position%, H
|
|
+Gui, Add, Button, %k_Position%, H
|
|
-Gui, Add, Button, %k_Position%, J
|
|
+Gui, Add, Button, %k_Position%, J
|
|
-Gui, Add, Button, %k_Position%, K
|
|
+Gui, Add, Button, %k_Position%, K
|
|
-Gui, Add, Button, %k_Position%, L
|
|
+Gui, Add, Button, %k_Position%, L
|
|
-Gui, Add, Button, %k_Position%, `;
|
|
+Gui, Add, Button, %k_Position%, `;
|
|
-Gui, Add, Button, %k_Position%, '
|
|
+Gui, Add, Button, %k_Position%, '
|
|
-Gui, Add, Button, x+%k_KeyMargin% h%k_KeyHeight%, Enter ; Auto-width.
|
|
+Gui, Add, Button, x+%k_KeyMargin% h%k_KeyHeight%, Enter ; Auto-width.
|
|
-
|
|
+
|
|
-; The first button below adds %A_Space% at the end to widen it a little,
|
|
+; The first button below adds %A_Space% at the end to widen it a little,
|
|
-; making the layout of keys next to it more accurately reflect a real keyboard:
|
|
+; making the layout of keys next to it more accurately reflect a real keyboard:
|
|
-Gui, Add, Button, xm y+%k_KeyMargin% h%k_KeyHeight%, Shift%A_Space%%A_Space%
|
|
+Gui, Add, Button, xm y+%k_KeyMargin% h%k_KeyHeight%, Shift%A_Space%%A_Space%
|
|
-Gui, Add, Button, %k_Position%, Z
|
|
+Gui, Add, Button, %k_Position%, Z
|
|
-Gui, Add, Button, %k_Position%, X
|
|
+Gui, Add, Button, %k_Position%, X
|
|
-Gui, Add, Button, %k_Position%, C
|
|
+Gui, Add, Button, %k_Position%, C
|
|
-Gui, Add, Button, %k_Position%, V
|
|
+Gui, Add, Button, %k_Position%, V
|
|
-Gui, Add, Button, %k_Position%, B
|
|
+Gui, Add, Button, %k_Position%, B
|
|
-Gui, Add, Button, %k_Position%, N
|
|
+Gui, Add, Button, %k_Position%, N
|
|
-Gui, Add, Button, %k_Position%, M
|
|
+Gui, Add, Button, %k_Position%, M
|
|
-Gui, Add, Button, %k_Position%, `,
|
|
+Gui, Add, Button, %k_Position%, `,
|
|
-Gui, Add, Button, %k_Position%, .
|
|
+Gui, Add, Button, %k_Position%, .
|
|
-Gui, Add, Button, %k_Position%, /
|
|
+Gui, Add, Button, %k_Position%, /
|
|
-
|
|
+
|
|
-Gui, Add, Button, xm y+%k_KeyMargin% h%k_KeyHeight%, Ctrl ; Auto-width.
|
|
+Gui, Add, Button, xm y+%k_KeyMargin% h%k_KeyHeight%, Ctrl ; Auto-width.
|
|
-Gui, Add, Button, h%k_KeyHeight% x+%k_KeyMargin%, Win ; Auto-width.
|
|
+Gui, Add, Button, h%k_KeyHeight% x+%k_KeyMargin%, Win ; Auto-width.
|
|
-Gui, Add, Button, h%k_KeyHeight% x+%k_KeyMargin%, Alt ; Auto-width.
|
|
+Gui, Add, Button, h%k_KeyHeight% x+%k_KeyMargin%, Alt ; Auto-width.
|
|
-Gui, Add, Button, h%k_KeyHeight% x+%k_KeyMargin% w%k_SpacebarWidth%, Space
|
|
+Gui, Add, Button, h%k_KeyHeight% x+%k_KeyMargin% w%k_SpacebarWidth%, Space
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-;---- Show the window:
|
|
+;---- Show the window:
|
|
-Gui, Show
|
|
+Gui, Show
|
|
-k_IsVisible = y
|
|
+k_IsVisible = y
|
|
-
|
|
+
|
|
-WinGet, k_ID, ID, A ; Get its window ID.
|
|
+WinGet, k_ID, ID, A ; Get its window ID.
|
|
-WinGetPos,,, k_WindowWidth, k_WindowHeight, A
|
|
+WinGetPos,,, k_WindowWidth, k_WindowHeight, A
|
|
-
|
|
+
|
|
-;---- Position the keyboard at the bottom of the screen (taking into account
|
|
+;---- Position the keyboard at the bottom of the screen (taking into account
|
|
-; the position of the taskbar):
|
|
+; the position of the taskbar):
|
|
-SysGet, k_WorkArea, MonitorWorkArea, %k_Monitor%
|
|
+SysGet, k_WorkArea, MonitorWorkArea, %k_Monitor%
|
|
-
|
|
+
|
|
-; Calculate window's X-position:
|
|
+; Calculate window's X-position:
|
|
-k_WindowX = %k_WorkAreaRight%
|
|
+k_WindowX = %k_WorkAreaRight%
|
|
-k_WindowX -= %k_WorkAreaLeft% ; Now k_WindowX contains the width of this monitor.
|
|
+k_WindowX -= %k_WorkAreaLeft% ; Now k_WindowX contains the width of this monitor.
|
|
-k_WindowX -= %k_WindowWidth%
|
|
+k_WindowX -= %k_WindowWidth%
|
|
-k_WindowX /= 2 ; Calculate position to center it horizontally.
|
|
+k_WindowX /= 2 ; Calculate position to center it horizontally.
|
|
-; The following is done in case the window will be on a non-primary monitor
|
|
+; The following is done in case the window will be on a non-primary monitor
|
|
-; or if the taskbar is anchored on the left side of the screen:
|
|
+; or if the taskbar is anchored on the left side of the screen:
|
|
-k_WindowX += %k_WorkAreaLeft%
|
|
+k_WindowX += %k_WorkAreaLeft%
|
|
-
|
|
+
|
|
-; Calculate window's Y-position:
|
|
+; Calculate window's Y-position:
|
|
-k_WindowY = %k_WorkAreaBottom%
|
|
+k_WindowY = %k_WorkAreaBottom%
|
|
-k_WindowY -= %k_WindowHeight%
|
|
+k_WindowY -= %k_WindowHeight%
|
|
-
|
|
+
|
|
-WinMove, A,, %k_WindowX%, %k_WindowY%
|
|
+WinMove, A,, %k_WindowX%, %k_WindowY%
|
|
-WinSet, AlwaysOnTop, On, ahk_id %k_ID%
|
|
+WinSet, AlwaysOnTop, On, ahk_id %k_ID%
|
|
-WinSet, TransColor, %TransColor% 220, ahk_id %k_ID%
|
|
+WinSet, TransColor, %TransColor% 220, ahk_id %k_ID%
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-;---- Set all keys as hotkeys. See www.asciitable.com
|
|
+;---- Set all keys as hotkeys. See www.asciitable.com
|
|
-k_n = 1
|
|
+k_n = 1
|
|
-k_ASCII = 45
|
|
+k_ASCII = 45
|
|
-
|
|
+
|
|
-Loop
|
|
+Loop
|
|
-{
|
|
+{
|
|
- Transform, k_char, Chr, %k_ASCII%
|
|
+ Transform, k_char, Chr, %k_ASCII%
|
|
- StringUpper, k_char, k_char
|
|
+ StringUpper, k_char, k_char
|
|
- if k_char not in <,>,^,~,,`,
|
|
+ if k_char not in <,>,^,~,,`,
|
|
- Hotkey, ~*%k_char%, k_KeyPress
|
|
+ Hotkey, ~*%k_char%, k_KeyPress
|
|
- ; In the above, the asterisk prefix allows the key to be detected regardless
|
|
+ ; In the above, the asterisk prefix allows the key to be detected regardless
|
|
- ; of whether the user is holding down modifier keys such as Control and Shift.
|
|
+ ; of whether the user is holding down modifier keys such as Control and Shift.
|
|
- if k_ASCII = 93
|
|
+ if k_ASCII = 93
|
|
- break
|
|
+ break
|
|
- k_ASCII++
|
|
+ k_ASCII++
|
|
-}
|
|
+}
|
|
-
|
|
+
|
|
-return ; End of auto-execute section.
|
|
+return ; End of auto-execute section.
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-;---- When a key is pressed by the user, click the corresponding button on-screen:
|
|
+;---- When a key is pressed by the user, click the corresponding button on-screen:
|
|
-
|
|
+
|
|
-~*Backspace::
|
|
+~*Backspace::
|
|
-ControlClick, Bk, ahk_id %k_ID%, , LEFT, 1, D
|
|
+ControlClick, Bk, ahk_id %k_ID%, , LEFT, 1, D
|
|
-KeyWait, Backspace
|
|
+KeyWait, Backspace
|
|
-ControlClick, Bk, ahk_id %k_ID%, , LEFT, 1, U
|
|
+ControlClick, Bk, ahk_id %k_ID%, , LEFT, 1, U
|
|
-return
|
|
+return
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-; LShift and RShift are used rather than "Shift" because when used as a hotkey,
|
|
+; LShift and RShift are used rather than "Shift" because when used as a hotkey,
|
|
-; "Shift" would default to firing upon release of the key (in older AHK versions):
|
|
+; "Shift" would default to firing upon release of the key (in older AHK versions):
|
|
-~*LShift::
|
|
+~*LShift::
|
|
-~*RShift::
|
|
+~*RShift::
|
|
-~*LCtrl:: ; Must use Ctrl not Control to match button names.
|
|
+~*LCtrl:: ; Must use Ctrl not Control to match button names.
|
|
-~*RCtrl::
|
|
+~*RCtrl::
|
|
-~*LAlt::
|
|
+~*LAlt::
|
|
-~*RAlt::
|
|
+~*RAlt::
|
|
-~*LWin::
|
|
+~*LWin::
|
|
-~*RWin::
|
|
+~*RWin::
|
|
-StringTrimLeft, k_ThisHotkey, A_ThisHotkey, 3
|
|
+StringTrimLeft, k_ThisHotkey, A_ThisHotkey, 3
|
|
-ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, D
|
|
+ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, D
|
|
-KeyWait, %k_ThisHotkey%
|
|
+KeyWait, %k_ThisHotkey%
|
|
-ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, U
|
|
+ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, U
|
|
-return
|
|
+return
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-~*,::
|
|
+~*,::
|
|
-~*'::
|
|
+~*'::
|
|
-~*Space::
|
|
+~*Space::
|
|
-~*Enter::
|
|
+~*Enter::
|
|
-~*Tab::
|
|
+~*Tab::
|
|
-k_KeyPress:
|
|
+k_KeyPress:
|
|
-StringReplace, k_ThisHotkey, A_ThisHotkey, ~
|
|
+StringReplace, k_ThisHotkey, A_ThisHotkey, ~
|
|
-StringReplace, k_ThisHotkey, k_ThisHotkey, *
|
|
+StringReplace, k_ThisHotkey, k_ThisHotkey, *
|
|
-SetTitleMatchMode, 3 ; Prevents the T and B keys from being confused with Tab and Backspace.
|
|
+SetTitleMatchMode, 3 ; Prevents the T and B keys from being confused with Tab and Backspace.
|
|
-ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, D
|
|
+ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, D
|
|
-KeyWait, %k_ThisHotkey%
|
|
+KeyWait, %k_ThisHotkey%
|
|
-ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, U
|
|
+ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, U
|
|
-Return
|
|
+Return
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-k_ShowHide:
|
|
+k_ShowHide:
|
|
-if k_IsVisible = y
|
|
+if k_IsVisible = y
|
|
-{
|
|
+{
|
|
- Gui, Cancel
|
|
+ Gui, Cancel
|
|
- Menu, Tray, Rename, %k_MenuItemHide%, %k_MenuItemShow%
|
|
+ Menu, Tray, Rename, %k_MenuItemHide%, %k_MenuItemShow%
|
|
- k_IsVisible = n
|
|
+ k_IsVisible = n
|
|
-}
|
|
+}
|
|
-else
|
|
+else
|
|
-{
|
|
+{
|
|
- Gui, Show
|
|
+ Gui, Show
|
|
- Menu, Tray, Rename, %k_MenuItemShow%, %k_MenuItemHide%
|
|
+ Menu, Tray, Rename, %k_MenuItemShow%, %k_MenuItemHide%
|
|
- k_IsVisible = y
|
|
+ k_IsVisible = y
|
|
-}
|
|
+}
|
|
-return
|
|
+return
|
|
-
|
|
+
|
|
-
|
|
+
|
|
-GuiClose:
|
|
+GuiClose:
|
|
-k_MenuExit:
|
|
+k_MenuExit:
|
|
ExitApp
|
|
ExitApp
|