2018-08-31Ahk小键盘

;---- Configuration Section: Customize the size of the on-screen keyboard and

; other options here.; Changing this font size will make the entire on-screen keyboard get

; larger or smaller:k_FontSize = 10k_FontName = Verdana; This can be blank to use the system's default font.k_FontStyle = Bold; Example of an alternative: Italic Underline; Names for the tray menu items:k_MenuItemHide = Hide on-screen &keyboardk_MenuItemShow = Show on-screen &keyboard; 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

; the primary:k_Monitor =;---- End of configuration section.  Don't change anything below this point

; unless you want to alter the basic nature of the script.;---- Alter the tray icon menu:Menu, Tray, Add, %k_MenuItemHide%, k_ShowHideMenu, Tray, Add, &Exit, k_MenuExitMenu, Tray, Default, %k_MenuItemHide%Menu, Tray, NoStandard;---- Calculate object dimensions based on chosen font size:k_KeyWidth = %k_FontSize%k_KeyWidth *= 3k_KeyHeight = %k_FontSize%k_KeyHeight *= 3k_KeyMargin = %k_FontSize%k_KeyMargin /= 6k_SpacebarWidth = %k_FontSize%k_SpacebarWidth *= 25k_KeyWidthHalf = %k_KeyWidth%k_KeyWidthHalf /= 2k_KeySize = w%k_KeyWidth% h%k_KeyHeight%k_Position = x+%k_KeyMargin% %k_KeySize%;---- Create a GUI window for the on-screen keyboard:Gui, Font, s%k_FontSize% %k_FontStyle%, %k_FontName%Gui, -Caption +E0x200 +ToolWindowTransColor = F1ECEDGui, Color, %TransColor%; This color will be made transparent later below.;---- Add a button for each key. Position the first button with absolute

; coordinates so that all other buttons can be positioned relative to it:Gui, Add, Button, section %k_KeySize% xm+%k_KeyWidth%, 1Gui, Add, Button, %k_Position%, 2Gui, Add, Button, %k_Position%, 3Gui, Add, Button, %k_Position%, 4Gui, Add, Button, %k_Position%, 5Gui, Add, Button, %k_Position%, 6Gui, Add, Button, %k_Position%, 7Gui, Add, Button, %k_Position%, 8Gui, Add, Button, %k_Position%, 9Gui, Add, Button, %k_Position%, 0Gui, Add, Button, %k_Position%, -Gui, Add, Button, %k_Position%, =Gui, Add, Button, %k_Position%, BkGui, Add, Button, xm y+%k_KeyMargin% h%k_KeyHeight%, Tab; Auto-width.Gui, Add, Button, %k_Position%, QGui, Add, Button, %k_Position%, WGui, Add, Button, %k_Position%, EGui, Add, Button, %k_Position%, RGui, Add, Button, %k_Position%, TGui, Add, Button, %k_Position%, YGui, Add, Button, %k_Position%, UGui, Add, Button, %k_Position%, IGui, Add, Button, %k_Position%, OGui, Add, Button, %k_Position%, PGui, 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%, AGui, Add, Button, %k_Position%, SGui, Add, Button, %k_Position%, DGui, Add, Button, %k_Position%, FGui, Add, Button, %k_Position%, GGui, Add, Button, %k_Position%, HGui, Add, Button, %k_Position%, JGui, Add, Button, %k_Position%, KGui, Add, Button, %k_Position%, LGui, Add, Button, %k_Position%, `;Gui, Add, Button, %k_Position%, '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,

; 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, %k_Position%, ZGui, Add, Button, %k_Position%, XGui, Add, Button, %k_Position%, CGui, Add, Button, %k_Position%, VGui, Add, Button, %k_Position%, BGui, Add, Button, %k_Position%, NGui, Add, Button, %k_Position%, MGui, 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, 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% w%k_SpacebarWidth%, Space;---- Show the window:Gui, Showk_IsVisible = yWinGet, k_ID, ID, A; Get its window ID.WinGetPos,,, k_WindowWidth, k_WindowHeight, A;---- Position the keyboard at the bottom of the screen (taking into account

; the position of the taskbar):SysGet, k_WorkArea, MonitorWorkArea, %k_Monitor%; Calculate window's X-position:k_WindowX = %k_WorkAreaRight%k_WindowX -= %k_WorkAreaLeft%; Now k_WindowX contains the width of this monitor.k_WindowX -= %k_WindowWidth%k_WindowX /= 2; Calculate position to center it horizontally.

; 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:k_WindowX += %k_WorkAreaLeft%; Calculate window's Y-position:k_WindowY = %k_WorkAreaBottom%k_WindowY -= %k_WindowHeight%WinMove, A,, %k_WindowX%, %k_WindowY%WinSet, AlwaysOnTop, On, ahk_id %k_ID%WinSet, TransColor, %TransColor% 220, ahk_id %k_ID%;---- Set all keys as hotkeys. See www.asciitable.comk_n = 1k_ASCII = 45Loop{    Transform, k_char, Chr, %k_ASCII%    StringUpper, k_char, k_char    if k_char not in <,>,^,~,�,`,        Hotkey, ~*%k_char%, k_KeyPress; 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.if k_ASCII = 93        break    k_ASCII++}return; End of auto-execute section.;---- When a key is pressed by the user, click the corresponding button on-screen:~*Backspace::ControlClick, Bk, ahk_id %k_ID%, , LEFT, 1, DKeyWait, BackspaceControlClick, Bk, ahk_id %k_ID%, , LEFT, 1, Ureturn; 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):~*LShift::~*RShift::~*LCtrl::; Must use Ctrl not Control to match button names.~*RCtrl::~*LAlt::~*RAlt::~*LWin::~*RWin::StringTrimLeft, k_ThisHotkey, A_ThisHotkey, 3ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, DKeyWait, %k_ThisHotkey%ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, Ureturn~*,::~*'::~*Space::~*Enter::~*Tab::k_KeyPress:StringReplace, k_ThisHotkey, A_ThisHotkey, ~StringReplace, k_ThisHotkey, k_ThisHotkey, *SetTitleMatchMode, 3; Prevents the T and B keys from being confused with Tab and Backspace.ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, DKeyWait, %k_ThisHotkey%ControlClick, %k_ThisHotkey%, ahk_id %k_ID%, , LEFT, 1, UReturnk_ShowHide:if k_IsVisible = y{    Gui, Cancel    Menu, Tray, Rename, %k_MenuItemHide%, %k_MenuItemShow%    k_IsVisible = n}else{    Gui, Show    Menu, Tray, Rename, %k_MenuItemShow%, %k_MenuItemHide%    k_IsVisible = y}returnGuiClose:k_MenuExit:ExitApp

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356

推荐阅读更多精彩内容