当前位置:   article > 正文

30 番外5 AHK语法应用实战_ahk按键表

ahk按键表

番外5 AHK语法应用实战

ahk是一种极其轻量,极其易上手,极其方便好用的脚本语言,对于没有编程基础的人来说,可以轻松掌握.

作为一个强大轻量的工具,ahk主要提供了热键宏操作.

什么是热键宏?简单的理解,就是自定义快捷键.

AHK使用场景举例


ahk到底有什么用处呢?

1.把一个按键映射称为另一个按键.通过简单的语法,我们可以设置按下某键输入任何的字母,汉字,字符,甚至句子,文章.

2.自定义快捷键.这是一个极其有用的功能.我们可以自定义一个组合键,比如:ctrl+y,控制其自动打开任何的网页,文件,文件夹,网络地址,或者实现其他的操作功能.

3.为电脑增加更丰富的功能.如果应用的好,可以给自己的电脑增加一些意想不到的提升效率的功能.

ahk可谓是提升办公效率的神级脚本!

AHK安装

ahk官网 (网站打不开可以试试手机打开)

下载安装ahk的v1.1版本,不要下载v2.0.

安装完成及完成了ahk环境的配置.

使用记事本编辑AHK

在桌面上鼠标右键点击 新建->Autohotkey script 即新建了一个ahk脚本(实际就是一个普通的文本文件)

选择 记事本作为ahk的编辑器即可.

桌面上出现了一个ahk的文件,右键点击 edit script 即可编辑脚本

先来点最简单的:

请看下面的一段代码:

u::y

    这是什么意思?

    这表示按下字母u的时候,输入y.(也就是把u按键映射成y)

    其中,使用两个冒号连接需要映射的值和被映射的值.简单地说,你想改变功能的按键写在冒号前面,你想要的功能写在冒号后面.

    再比如:

    ad::你好

      这就代表连续输入ad的时候.电脑自动输入 你好 .

      这可以大大节省我们输入无用的字符浪费的时间.

      那么,如何使用ahk自动以快捷键呢?

      请看下面这些代码:

      ^u::^c

        你可能吓了一跳:^是什么东西!开始抽想起来了?

        不用担心,这是AHK语言里为数不多需要记忆的东西! ^代表的意思是ctrl.

        此外,我们还需要记住:!是Alt,#是win徽标键,+是shift.这就足够啦.

        所以,上面的那行代码是什么意思呢?

        很简单,就是当我们按下ctrl+u的时候,计算机实际认为我们按下的是ctrl+c.

        我们知道,ctrl+c是复制的快捷键.所以,现在,ctrl+u就也变成了复制的快捷键了.

        但是,需要注意的是,这个热键只有在同时按下ctrl和u的时候才能把它识别成ctrl+c.所以,我们单独按下u键的时候,不会输入c,而仍然是u.


        那么,如何自定义热键打开文件,文件夹,网页呢?

        请看下面的代码:

        !r::
        run,www.baidu.com
        return
        
        #q::
        run,C:\Program Files
        return
        
        ^+s::
        run,D:\AIMP\AIMP.exe
        return
        
        +w::
        send,你好啊
        return
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14

        上面的代码分为了四组.这些代码可以放在一个ahk脚本文件里运行,事实上,一个ahk脚本里可以放无数个指令.第一组代码的意思是,按下快捷键Alt+r,自动打开网页www.baidu.com.第二组代码意思是,按下快捷键Windows徽标键+q,自动打开位于C:\Program Files的这个文件夹.第三组代码的意思是,按下快捷键ctrl+shift+s,自动运行位于D:\AIMP\AIMP.exe的软件,第四组代码的意思是,按下快捷键shift+w,自动输入 你好啊.

        你可能会疑惑,return是干什么用的?这是用于终止一个代码继续向下运行的.如果不加return,可能导致代码运行错误,所以,return在以后是你的一个好朋友,他会帮你在需要停止的地方停止运行代码.

        这里我推荐几个实用的的ahk代码,大家可以直接复制粘贴:

        !Delete::
        Run, cmd.exe /c "echo y | powershell.exe -command Clear-RecycleBin", , Hide
        Return
        ;这是一个清空回收站的代码,快捷键是Alt+delete
        
        !space::!F4
        ;千万不要小看上面这行短短的代码!!!这是一个按下 Alt+空格 直接关闭当前活动窗口的代码,把微软原本的alt+F4换成了alt+space.强烈推荐笔记本电脑用户使用这个快捷键,笔者使用了2年这个快捷键,使用率极其之高,极大的方便了电脑的使用!不用不知道,用的都说好!
        
        Tab::LButton
        `::Rbutton
        ;把键盘上不常用的tab键映射成鼠标左键单击.把tab上面的`映射成鼠标右键单击.成功的把键盘和鼠标融为一体了.极大方便了笔记本电脑用户的使用.
        
        MButton::backspace
        ;鼠标按下中键相当于backspace(退格),在文件资源管理器返回上级菜单时很好用.
        
        ~MButton & LButton::
        !LButton::
        CoordMode, Mouse  ; Switch to screen/absolute coordinates.
        MouseGetPos, EWD_MouseStartX, EWD_MouseStartY, EWD_MouseWin
        WinGetPos, EWD_OriginalPosX, EWD_OriginalPosY,,, ahk_id %EWD_MouseWin%
        WinGet, EWD_WinState, MinMax, ahk_id %EWD_MouseWin% 
        if EWD_WinState = 0  ; Only if the window isn't maximized 
            SetTimer, EWD_WatchMouse, 10 ; Track the mouse as the user drags it.
        return
        
        EWD_WatchMouse:
        GetKeyState, EWD_LButtonState, LButton, P
        if EWD_LButtonState = U  ; Button has been released, so drag is complete.
        {
            SetTimer, EWD_WatchMouse, off
            return
        }
        GetKeyState, EWD_EscapeState, Escape, P
        if EWD_EscapeState = D  ; Escape has been pressed, so drag is cancelled.
        {
            SetTimer, EWD_WatchMouse, off
            WinMove, ahk_id %EWD_MouseWin%,, %EWD_OriginalPosX%, %EWD_OriginalPosY%
            return
        }
        ; Otherwise, reposition the window to match the change in mouse coordinates
        ; caused by the user having dragged the mouse:
        CoordMode, Mouse
        MouseGetPos, EWD_MouseX, EWD_MouseY
        WinGetPos, EWD_WinX, EWD_WinY,,, ahk_id %EWD_MouseWin%
        SetWinDelay, -1   ; Makes the below move faster/smoother.
        WinMove, ahk_id %EWD_MouseWin%,, EWD_WinX + EWD_MouseX - EWD_MouseStartX, EWD_WinY + EWD_MouseY - EWD_MouseStartY
        EWD_MouseStartX := EWD_MouseX  ; Update for the next timer-call to this subroutine.
        EWD_MouseStartY := EWD_MouseY
        return
        ;某大神编写的代码,按下alt键的同时鼠标点击一个窗口的任意位置都可以随意拖动窗口.实测有些一般情况下不能拖动的窗口也被拖动了.甚至笔者的桌面一整个被拖动走了,有点小吓人:)
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
        • 30
        • 31
        • 32
        • 33
        • 34
        • 35
        • 36
        • 37
        • 38
        • 39
        • 40
        • 41
        • 42
        • 43
        • 44
        • 45
        • 46
        • 47
        • 48
        • 49

        我的介绍只是AHK的冰山一角.AHK中文帮助文档是一个很好的学习资源.https://wyagd001.github.io/v2/docs/Tutorial.htm

        AHK中文帮助文档


        AHK转换为exe

        ahk如此方便,我们当然希望在所有电脑上都能使用我们自己编辑的代码.但是,貌似只有安装了ahk软件的电脑可以运行.

        事实上,我们可以把自己写好的ahk代码编译为exe程序,放在U盘里随时都能使用.

        d2559bd5ee2ea004fdec0c956932cca8.png

        在 开始 菜单里,点击Autohotkey Dash.打开ahk主界面.

        点击Compile,下载ahk2exe converter.这就是ahk的exe编译器.

        第一栏,source,选择你的ahk脚本文件.(支持直接拖拽)

        第二栏,destination,选择生成的exe文件的保存位置,不选择则为ahk脚本的位置

        custom icon:自定义exe的图标.你可以任意选择ico图标文件,作为你的软件的图标.

        Base file:依赖的文件:ahk2exe通过这个文件来编译exe.由于字符编码的不同,如果basefile选择不对,最终产生的exe可能无法正常使用或者功能不全.目前笔者选择最后一项v1.1.37.02U32ahk2exe没有出现过问题,能够使exe和编译前的ahk实现相同的功能.所以推荐大家使用最后一项.

        最后,直接点击convert即可瞬间产生exe文件程序.

        建议以管理员身份运行自己编译的脚本,否则有的功能可能权限不足,无法实现.

        这样,产生的exe可以放在U盘里,随时使用,十分方便.


        附 ahk按键表

        ::以下用于冒号后

        LButton 鼠标左键

        RButton 鼠标右键

        MButton 鼠标中键或滚轮

        高级

        XButton1 鼠标的第四个按钮。一般和 Browser_Back 执行相同功能。

        XButton2 鼠标的第五个按钮。一般和 Browser_Forward 执行相同功能。

        Wheel

        WheelDown 向下转动鼠标滚轮(向您的方向)。

        WheelUp 向上转动鼠标滚轮(远离您的方向)。 WheelLeft WheelRight
        [v1.0.48+]:向左或向右滚动。

        需要 Windows Vista 或更高版本。这可以用在某些(但并非所有)带第二个滚轮或支持左右滚动的鼠标热键。在某些情况下,必须通过鼠标的自带软件包控制这个功能。不论鼠标如何特殊,Send 和 Click 都能在支持它们的程序里水平滚动。

        键盘 注意: 字母和数字按键的名称和单个字母或数字相同. 例如: b 表示 "b" 键而 5 表示 "5" 键.

        概述

        CapsLock 大小写锁定键

        Space 空格键

        Tab Tab 键

        Enter (或 Return) 回车键

        Escape (或 Esc) 退出键

        Backspace (或 BS) 退格键

        光标控制

        ScrollLock 滚动锁定键

        Delete (或 Del) 删除键

        Insert (或 Ins) 插入改写切换键

        Home Home 键

        End End 键

        PgUp 向上翻页键

        PgDn 向下翻页键

        Up 向上方向键

        Down 向下方向键

        Left 向左方向键

        Right 向右方向键

        Numpad

        NumLock 开启

        NumLock 关闭

        Numpad0

        NumpadIns 0 / 插入改写切换键

        Numpad1

        NumpadEnd 1 / End 键

        Numpad2

        NumpadDown 2 / 向下方向键

        Numpad3

        NumpadPgDn 3 / 向下翻页键

        Numpad4

        NumpadLeft 4 / 向左方向键

        Numpad5

        NumpadClear 5 / 通常什么都不做

        Numpad6

        NumpadRight 6 / 向右方向键

        Numpad7

        NumpadHome 7 / Home 键

        Numpad8

        NumpadUp 8 / 向上方向键

        Numpad9

        NumpadPgUp 9 / 向上翻页键

        NumpadDot

        NumpadDel 十进制分隔符 / 删除键

        NumpadDiv

        NumpadDiv 除

        NumpadMult

        NumpadMult 乘

        NumpadAdd

        NumpadAdd 加

        NumpadSub

        NumpadSub 减

        NumpadEnter

        NumpadEnter 回车键

        功能

        F1 - F24 在大多数键盘顶部的 12 个或更多的功能键。

        按键修饰符

        LWin 左边的 Windows 徽标键。对应的热键前缀为 de><#de>。

        RWin 右边的 Windows 徽标键。对应的热键前缀为 de>>#de>。

        注意:与 Control/Alt/Shift 不同,没有一般的/中性的“Win”键,因为操作系统不支持。不过含 de>#de> 修饰符的热键可以被任何一个 Win 键触发。

        Control (或 Ctrl) Control 键。单独作为热键(de>Control::de>)时它在弹起时触发,不过如果加上颚化符前缀可以改变这种情况。对应的热键前缀为 de>^de>。

        Alt Alt 键。单独作为热键(de>Alt::de>)时它在弹起时触发,不过如果加上颚化符前缀可以改变这种情况。对应的热键前缀为 de>!de>。

        Shift Shift 键。单独作为热键(de>Shift::de>)时它在弹起时触发,不过如果加上颚化符前缀可以改变这种情况。对应的热键前缀为 de>+de>。

        LControl(或 LCtrl) 左 Control 键。对应的热键前缀为 de><^de>。

        RControl(或 RCtrl) 右 Control 键。对应的热键前缀为 de>>^de>。

        LShift 左 Shift 键。对应的热键前缀为 de><+de>。

        RShift 右 Shift 键。对应的热键前缀为 de>>+de>。

        LAlt 左 Alt 键。对应的热键前缀为 de><!de>。

        RAlt 右 Alt 键。对应的热键前缀为 de>>!de>。

        注意:如果您的键盘布局存在 AltGr 而不是 RAlt,那么您完全可以根据这里描述的那样通过 de><^>!de> 把它作为热键前缀使用。此外,de>LControl & RAlt::de> 可以把 AltGr 自身设置成热键。

        多媒体

        Browser_Back 后退

        Browser_Forward 前进

        Browser_Refresh 刷新

        Browser_Stop 停止

        Browser_Search 搜索

        Browser_Favorites 收藏夹

        Browser_Home 主页

        Volume_Mute 静音

        Volume_Down 调低音量

        Volume_Up 增加音量

        Media_Next 下一首

        Media_Prev 上一首

        Media_Stop 停止

        Media_Play_Pause Play/Pause

        Launch_Mail 打开默认的电子邮件程序

        Launch_Media 打开默认的媒体播放器

        Launch_App1 打开我的电脑

        Launch_App2 打开计算器

        注:上面列出的每个按键的功能可以通过修改 Windows 注册表进行替换。这个表格中显示的是在 Windows 系统的大多数版本中每个按键的默认功能。

        特别

        AppsKey 菜单键。这是调用右键上下文菜单的按键。

        PrintScreen 捕获屏幕

        CtrlBreak

        暂停 暂停键

        中断 中断键。由于此键和 Pause 含义相同,所以在热键中请使用 de>^CtrlBreakde> 代替 de>^Pausede> 或 de>^Breakde>。

        帮助 帮助键。此键可能在大多数键盘上不存在。它通常和 F1 不同.

        Sleep 休眠键。注意在一些键盘上的 sleep 键可能不是休眠功能。

        以下用于冒号前::

        下表中列出了可以发送的特殊按键(每个按键名称必须用大括号括起来):

        按键名称 描述

        {F1} - {F24} 功能键. 例如: {F12} 表示 F12.

        {!} !

        {#} #

        {+} +

        {^} ^

        {{} {

        {}} }

        {Enter} 主键盘上的 Enter

        {Escape} 或 {Esc} Esc

        {Space} Space(仅对于要发送的按键序列开始或末尾的空格才需要这样表示, 而序列中间的空格是原义的)

        {Tab} Tab

        {Backspace} 或 {BS} Backspace(退格键)

        {Delete} 或 {Del} Del(删除键)

        {Insert} 或 {Ins} Ins

        {Up} ↑(主键盘上的向上键)

        {Down} ↓(主键盘上的向下键)

        {Left} ←(主键盘上的向左键)

        {Right} →(主键盘上的向右键)

        {Home} Home(主键盘)

        {End} End(主键盘)

        {PgUp} PgUp(主键盘)

        {PgDn} PgDn(主键盘)

        {CapsLock} CapsLock(在 2k/XP 中使用 SetCapsLockState 更可靠). 发送 {CapsLock} 之前可能要求 SetStoreCapsLockMode Off.

        {ScrollLock} ScrollLock(另请参阅: SetScrollLockState)

        {NumLock} NumLock(另请参阅: SetNumLockState)

        {Control} 或 {Ctrl} Ctrl(技术信息: 发送中性键的虚拟键码而不是左边键的扫描码)(译者注: 中性 Ctrl 键 VK 11, SC 01D)

        {LControl} 或 {LCtrl} 左 Ctrl (技术信息: 发送左边键的虚拟键码而不是中性键)(译者注: 左 Ctrl 键 VK A2, SC 01D)

        {RControl} 或 {RCtrl} 右 Ctrl(译者注: 右 Ctrl 键 VK A3, SC 11D)

        {Control down} 或 {Ctrl down} 按住 Ctrl 直到发送 {Ctrl up}. 要按住左边或右边的键, 请使用 {RCtrl down} 和 {RCtrl up}.

        {Alt} Alt(技术信息: 发送中性键的虚拟键码而不是左边键的扫描码)(译者注: 中性 Alt 键 VK 12, SC 038)

        {LAlt} 左 Alt(技术信息: 发送左边键的虚拟键码而不是中性键)(译者注: 左 Alt 键 VK A4, SC 038)

        {RAlt} 右 Alt(或 AltGr, 取决于键盘布局)

        {Alt Down} 按住 Alt 直到发送 {Alt up}. 要按住左边或右边的键, 请使用 {RAlt down} 和 {RAlt up}.

        {Shift} Shift(技术信息: 发送中性键的虚拟键码和左边键的扫描码)(译者注: 中性 Shift 键 VK 10, SC 02A)

        {LShift} 左 Shift(技术信息: 发送左边键的虚拟键码而不是中性键)(译者注: 左 Shift 键 VK A0, SC 02A)

        {RShift} 右 Shift

        {Shift down} 按住 Shift直到发送 {Shift up}. 要按住左边或右边的键, 请使用 {RShift down} 和 {RShift up}.

        {LWin} 左 Win

        {RWin} 右 Win

        {LWin down} 按住左 Win 直到发送 {LWin up}

        {RWin down} 按住右 Win 直到发送 {RWin up}

        {AppsKey} Menu(调用右键点击或上下文菜单)

        {Sleep} Sleep.

        {ASC nnnnn}

        发送 Alt+nnnnn 小键盘上的按键组合, 可以用来生成键盘上不存在的特殊字符. 要生成 ASCII 字符, 请指定一个介于 1 和 255 之间的数字. 要生成 ANSI 字符 (在大多数语言中的标准), 请指定一个介于 128 和 255 之间的数字, 但需要在数字前加上一个前导零, 例如 {Asc 0133}.

        要生成 Unicode 字符, 请指定一个介于 256 和 65535 之间的数字(不带前导零). 但是, 有些应用程序不支持这种方法. 对于替代方法, 请参阅下面的部分.

        {U+nnnn}

        [v1.0.90+]: 发送 Unicode 字符, 其中 nnnn 为不包括 0x 前缀的字符的十六进制值. 在 AutoHotkey 的 Unicode 版本中通常不需要这么做, 因为它包含的 Send 和 ControlSend 自动支持 Unicode 文本.

        使用 SendInput() 或 WM_CHAR 发送这个字符而当前的发送模式无效. 以这种方式发送的字符通常不会触发快捷键或热键.

        {vkXX}

        {scYYY}

        {vkXXscYYY}

        发送一个虚拟按键为 XX 且扫描码为 YYY 的键击. 例如: Send {vkFFsc159}. 如果省略了 sc 或 vk 部分, 则会发送最适当的值.

        XX 和 YYY 是十六进制值, 通常可以在主窗口的 View->Key history 菜单项找到. 另请参阅: 特殊按键

        警告: 以这种方式组合 vk 和 sc, 仅在 Send 命令中有效. 在 [v1.1.27] 之前, 热键也允许使用, 但忽略 XX 后的任何非十六进制字符.

        {Numpad0} - {Numpad9} 小键盘上的数字键(与 NumLock 打开时输入的一样). 例如: {Numpad5} 为数字 5.

        {NumpadDot} .(小键盘上的点)(与 NumLock 打开时输入的一样).

        {NumpadEnter} 小键盘上的 Enter

        {NumpadMult} 小键盘上的 *(乘)

        {NumpadDiv} 小键盘上的 /(除)

        {NumpadAdd} 小键盘上的+(加)

        {NumpadSub} 小键盘上的 -(减)

        {NumpadDel} 小键盘上的 Del(此键和后面的小键盘按键是在 NumLock 关闭时输入的)

        {NumpadIns} 小键盘上的 Ins

        {NumpadClear} 小键盘上的 Clear(通常在 Numlock 关闭时输入 5).

        {NumpadUp} 小键盘上的 ↑(向上键)

        {NumpadDown} 小键盘上的 ↓(向下键)

        {NumpadLeft} 小键盘上的 ←(向左键)

        {NumpadRight} 小键盘上的 →(向右键)

        {NumpadHome} 小键盘上的 Home

        {NumpadEnd} 小键盘上的 End

        {NumpadPgUp} 小键盘上的 PgUp(向上翻页)

        {NumpadPgDn} 小键盘上的 PgDn(向下翻页)

        {Browser_Back} 按下浏览器的 "后退" 按钮

        {Browser_Forward} 按下浏览器的 "前进" 按钮

        {Browser_Refresh} 按下浏览器的 "刷新" 按钮

        {Browser_Stop} 按下浏览器的 "停止" 按钮

        {Browser_Search} 按下浏览器的 "搜索" 按钮

        {Browser_Favorites} 按下浏览器的 "收藏" 按钮

        {Browser_Home} 启动浏览器并打开主页

        {Volume_Mute} 主音量静音/取消静音. 通常相当于 SoundSet, +1, , mute.

        {Volume_Down} 减小主音量. 通常相当于 SoundSet -5.

        {Volume_Up} 增加主音量. 通常相当于 SoundSet +5.

        {Media_Next} 在媒体播放器中播放下一曲目

        {Media_Prev} 在媒体播放器中播放前一曲目

        {Media_Stop} 停止媒体播放器

        {Media_Play_Pause} 播放/暂停媒体播放器

        {Launch_Mail} 启动电子邮件程序

        {Launch_Media} 启动媒体播放器

        {Launch_App1} 启动用户程序 1

        {Launch_App2} 启动用户程序 2

        {PrintScreen} PrtScr

        {CtrlBreak} Ctrl+Break

        {Pause} Pause

        本文由博客一文多发平台 OpenWrite 发布!

        声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/918048
        推荐阅读
        相关标签
          

        闽ICP备14008679号