^j::代表Ctrl+J,其中^代表Ctrl键
Send命令:在光标处输入Hello worldSEO靠我!
也就是说,你按下Ctrl+J后,将会输入字符串Hello world!
Return即返回
热字串 ::ftw::Free the whales Return功能:文本替SEO靠我换,即你输入ftw后,按下触发按键(Space、Enter、Tab)后,就会把ftw替换成Free the whales
::ftw::MsgBox, You typed "ftw" RSEO靠我eturn功能:你输入ftw后,按下触发按键(Space、Enter、Tab)后,就会调用MsgBox命令
MsgBox:会弹出类似下方图片的窗口,显示你设置的字符串
:*:ace::access功能:无SEO靠我需按下触发按键就可替换字符,即你输入ace的时候,自动会替换成access
调用多个功能每个热键和热字串后都能接多个功能
^j::MsgBox Wow!MsgBox this isRun, NotepadSEO靠我.exe ReturnRun:运行
常用符号 符号描述#Win(Windows 徽标键)!Alt^Control+Shift&用于连接两个按键(含鼠标按键) 合并成一个自SEO靠我定义热键. 特定窗口的热键和热字串可使用#IfWinActive和#IfWinExist等特殊命令创建对上下文敏感的热键和热字串
#IfWinActive new 1 - NotepadSEO靠我++ #space::MsgBox You pressed Win+Spacebar in Notepad++ Return只在窗口new 1 - Notepad++中SEO靠我生效,按下Win键和Space,就会看到如下页面
关闭后序热键和热字串的上下文敏感性 #IfWinActive new 1 - Notepad++ #space::MsgSEO靠我Box You pressed Win+Spacebar in Notepad++ Return; 任何其他的窗口 #IfWinActive #spacSEO靠我e::MsgBox, You pressed Win+Spacebar not in Notepad Return在其他窗口输入热键的结果
一个文件包含多个热键和热字串 SEO靠我#i:: Run, https://www.google.com/ Return~j:: Send, ack Return:*:acheSEO靠我iv::achiev ::ace::achievement 发送指令Send 符号说明!按下Alt键+按下Shift键^按下Ctrl键#按下Win键使SEO靠我用 Ctrl 或 Enter(或其他按键) 作为热键时,不要将它们括在 {} 中.
; 错误的 {LCtrl}::Send, AutoHotkey Return; 正确的SEO靠我 LCtrl::Send, AutoHotkey Return想要表示按住或松开某个按键, 可以将这个键用花括号围起来, 同时加上单词 UP 或 DOWN.
; 下面这个SEO靠我例子表示按下一个键的时候再按下另一个键(或多个键). ; 如果其中一个方法不奏效, 试试另一个. Send, ^s ; 都表示发送 CTRL+s 键击 SEO靠我Send, {ctrl down}s{ctrl up} ; 都表示发送 CTRL+s 键击 Send, {ctrl down}c{ctrl up} Send, {b dSEO靠我own}{b up} Send, {Tab down}{Tab up} Send, {Up down} ; 按下向上键. Sleep, 1000 ; 保SEO靠我持 1 秒. Send, {Up up} ; 然后松开向上键.发送复杂文本
Send, ( Line 1 Line 2 ASEO靠我pples are a fruit. ) 打开指令run ; 运行一个程序. 注意: 大部分的程序可能需要完整路径. Run, %A_SEO靠我ProgramFiles%\Some_Program\Program.exe; 打开一个网址 Run, https://autohotkey.com 命令和函数 SEO靠我 命令使用参数时, 你需要在参数的前后加上 %, 比如 %variable%. 而文本和数字则不需要加双引号, 例如 This is some text. 命令的参数不能进行运算
函数:可以使SEO靠我用运算,变量不需要加上百分号,函数可以嵌套另一个函数,文本前后需要加上双引号
SubStr(37 * 12, 1, 2) SubStr(A_Hour - 12, 2) MSEO靠我yVar := SubStr("Im scripting, awesome!", 16) ;使用:=来接收返回值 代码块用一对花括号({ 和 }) 包围起来的一段代码
if (MyVar=SEO靠我5) {MsgBox, MyVar equals %MyVar%!!ExitApp } 赋值传统赋值=,表达式赋值:=
获取用户输入 ISEO靠我nputBox, OutputVar, Question 1, Whats you name if(OutputVar = "bill"){MsgBox, Thats an awesoSEO靠我me name, %OutputVar% }else{MsgBox, Hello world! } ; 下面的例子展示了什么时候该使用百分号, 什么时SEO靠我候不该. Var = Text ; 赋值一些文本给一个变量(传统的). Number := 6 ; 赋值一个数字给一个变量(表达式). Var2 = %SEO靠我Var% ; 赋值一个变量给另一个(传统的). Var3 := Var ; 赋值一个变量给另一个(表达式). Var4 .= Var ; 追加一个变量到另一个的末尾(表SEO靠我达式). Var5 += Number ; 将变量的值与另一个相加(表达式). Var5 -= Number ; 将变量的值减去另一个(表达式). VaSEO靠我r6 := SubStr(Var, 2, 2) ; 变量在函数中. 这总是一个表达式. Var7 = %Var% Text ; 赋值一个变量给另一个变量并带有一些额外的文本(传统的).SEO靠我 Var8 := Var " Text" ; 赋值一个变量给另一个变量并带有一些额外的文本(表达式). MsgBox, %Var% ; 变量在命令中. SEO靠我StringSplit, Var, Var, x ; 在命令中的变量, 但是它们作为输入或输出变量. if (Number = 6) ; 只要 IF 有括号, 它就是一个表达式, 所以SEO靠我不需要百分号. if (Var != Number) ; 只要 IF 有括号, 它就是一个表达式, 所以不需要百分号. if Number = 6 ; 如果没有括号, SEO靠我那么 IF 是传统的. 不过, 只有赋值语句"右边"的变量需要百分号. if Var1 < %Var2% ; 如果没有括号, 那么 IF 是传统的. 不过, 只有赋值语句"右边"的变量SEO靠我需要百分号. 对象我们有很多方法可以创建对象, 下面介绍最常用的几种方法:
方括号语法
MyObject := ["one", "two", "three", 17]这将从有时被称为"索SEO靠我引数组"的内容开始. 索引数组是一个表示项目列表的对象, 索引号从 1 开始连续递增. 在本例中, 值 "one" 存储在对象键 1(又叫做索引号1), 值 17 存储在对象键 4(又叫做索引号 4)SEO靠我.
大括号语法
Banana := {"Color": "Yellow", "Taste": "Delicious", "Price": 3}这将通过定义有时被称为"关联数组"来开始. 关联数组是数据的集SEO靠我合, 其中每个条目都有自己的名称. 在这个例子中, 值 "Yellow" 存储在对象键 "Color" 中. 同样的, 值 3 存储在对象键 "Price" 中.
数组函数
MyObject := ArrSEO靠我ay("one", "two", "three", 17)这种方式跟方括号语法形式一样, 区别仅仅是采用了函数的形式.
对象函数
Banana := Object("Color", "Yellow", "SEO靠我Taste", "Delicious", "Price", 3)这种方式跟大括号语法形式一样, 区别仅仅是采用了函数的形式.
请注意, 所有这些方法都创建了同一样东西(也就是对象), 区别仅仅是对象的键SEO靠我不一样.
使用对象方括号表示法
Banana["Pickled"] := True在对象中设置值跟设置变量的值一样简单. 你需要做的是把方括号所代表的值在表达式赋值运算符 := 的左边.
句点表示法
BanaSEO靠我na.Consistency := "Mushy"和上面一样, 但是用点(.) 符号.
检索值:方括号表示法
Value := Banana["Color"]S↓这允许你使用表达式作为键从对象中获取值. SEO靠我在这个例子中, 我使用表达式 "Color", 不要惊讶我仅使用键 Color 就会得到一个包含单词 “Yellow” 的值, 因为我们事先(在上一节) 就设置了键 Color.
句点表示法
Value SEO靠我:= Banana.ColorS↓仅允许使用原样的字串作为键名. 在句点表示法中键名不能使用变量.
增加新的键和值:方括号表示法
MyObject["NewerKey"] := 3.1415S↓想要直接添SEO靠我加一对键和值, 只需设置一个尚不存在的键即可.
句点表示法
MyObject.NewKey := "Shiny"S↓和上面一样, 但是用点符号.
InsertAt(在…插入) 法
MyObject.InserSEO靠我tAt(Index, Value1, Value2, Value3...)Index(索引) 为任意整数键. 这会将所有更高的整数键的索引向上移动插入值的数量, 即使是空缺的也一样(例如, 假设只有键SEO靠我 1 和 100 存在, 当插入一个值到第 50 个键的位置时, 将导致原来位于 100 的键的索引变成 101).
Push(推送) 法
MyObject.Push(Value1, Value2, VaSEO靠我lue3...)S↓"追加" 值到数组 MyObject 的尾部. 换句话说, 它将插入的值放在 最高整数键 + 1 的位置.
移除键和值:用空白填充值
Banana.Consistency := ""最SEO靠我简单的删除值的方法就是用空白填充. 你可以将其赋值为 “”(两个连续的双引号), 也就是常说的 空字符串. 这不会删除键, 但是它将使值看起来与从未赋值一样. 可以通过使用 HasKey 方法得知键依SEO靠我然存在, 而且键也会出现在 For 循环中. (我们一会再解释 For 循环)
删除法
RemovedValue := MyObject.Delete(AnyKey)S↓这和接下来的方法将删除键 和 值.SEO靠我 MyObject[AnyKey] 先前的值将存储在 RemovedValue 中.NumberOfRemovedKeys := MyObject.Delete(FirstKey, LastKey)允SEO靠我许你删除 FirstKey 和 LastKey 之间的一系列的编号/整数或字符串键. 它给出的值将是被删除的键的数量, 如果你的键之间有间隙, 这是有用的(例如你指定键从 1 到 4, 但是键 2 不SEO靠我存在, 这将设置 NumberOfRemovedKeys 为 3, 因为只有三个键被移除).
Pop(抛出) 法
MyObject.Pop()这将删除最高的整数键, 并返回这个键对应的值. 而且这种形式不SEO靠我会影响其他键的索引顺序(因为没有比它更高的序列了).
RemoveAt(在…删除) 方法
RemovedValue := MyObject.RemoveAt(Index)
NumberOfRemovedKeSEO靠我ys := MyObject.RemoveAt(Index, Length)这将移除从 Index 到 Index + Length - 1(包含) 之间的所有键(例如 Index 为 5, LengSEO靠我th 为 3, 则将删除键 5, 6, 7 这三个键). 如果 Length 省略则默认为 1. 移除这些键之后, 更高数字或整数的键将向下填充空缺, 所以如果有个值位于 Index + LengthSEO靠我 那么它现在的位置就是 Index. 这很像 InsertAt 方法操作多个指定值的操作.
网站备案号:浙ICP备17034767号-2