2018-08-31Ahk小鍵盤(pán)

;---- 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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溯职,一起剝皮案震驚了整個(gè)濱河市囤捻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坟漱,老刑警劉巖伯复,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慨代,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡啸如,警方通過(guò)查閱死者的電腦和手機(jī)侍匙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)叮雳,“玉大人想暗,你說(shuō)我怎么就攤上這事×辈唬” “怎么了说莫?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)寞焙。 經(jīng)常有香客問(wèn)我储狭,道長(zhǎng)互婿,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任辽狈,我火速辦了婚禮慈参,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刮萌。我一直安慰自己驮配,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布着茸。 她就那樣靜靜地躺著壮锻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪元扔。 梳的紋絲不亂的頭發(fā)上躯保,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音澎语,去河邊找鬼途事。 笑死,一個(gè)胖子當(dāng)著我的面吹牛擅羞,可吹牛的內(nèi)容都是我干的尸变。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼减俏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼召烂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起娃承,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奏夫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后历筝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體酗昼,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年梳猪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麻削。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡春弥,死狀恐怖呛哟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情匿沛,我是刑警寧澤扫责,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站逃呼,受9級(jí)特大地震影響公给,放射性物質(zhì)發(fā)生泄漏借帘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一淌铐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔫缸,春花似錦腿准、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至校翔,卻和暖如春弟跑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背防症。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工孟辑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔫敲。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓饲嗽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親奈嘿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子貌虾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容