我有一个简单的问题,我无法通过搜索互联网找到答案 如何将我的线条划分为一条(单条)线?
例如这是一个工作代码
right::
Send, ^s
Reload
Send, hello world
这不是
right::Send, ^s::Reload::Send, hello world
答案 0 :(得分:1)
Autohotkey没有像c和javascript中;
这样的语句终止符。
但是,如果您的目标是紧凑且可读的代码,则使用函数进行重构可以帮助您实现此目的。
您的代码用一行表示:
right::alpha("^s", "hello world")
alpha(text1, text2) {
send % text1
tooltip "reload" will interrupt your script. Any code following "reload" may not execute
send % text2
}
答案 1 :(得分:1)
在Autohotkey中,您不能将换行符用于单个代码行。
但是如果你想将线条划分为一条(单条)线。
你可以试试这个,
1 - 把它放进一个字符串。
2 - 转换它+将其保存到文件中。
3 - 然后从外部文件运行脚本。
注意 - 我确实制作了脚本,所以你想要它,保存它+?重新加载=运行example1.ahk +发送文本(它不能正常工作,所以你喜欢它,但它几乎是。它是对于我不清楚为什么要重新加载脚本?)
试试这段代码。
example1.ahk
; [+ = Shift] [! = Alt] [^ = Ctrl] [# = Win]
#SingleInstance force
sleep 100
return
right:: ConvertAndRun("Sendinput, ^s | run example1.ahk | runwait example1.ahk | Send, hello world")
left:: ConvertAndRun("Sendinput, ^s | run example1.ahk | runwait example1.ahk | Send, it works")
~esc::exitapp
ConvertAndRun(y)
{
FileDelete, Runscript.ahk
;1 - Convert the String in single codeline's with return - Character | is the breakline.
StringReplace,y,y, |, `n, all
sleep 150
;2 - Save the String to a file
x:="#notrayicon `n "
z:="`n "
FileAppend, %x%%y%%z%, Runscript.ahk
sleep 150
;3 - Now it can Run all the commands from that string.
run Runscript.ahk
sleep 150
exitapp
}
;
注意 - 此脚本会将字符串保存到文件(在HardDisk c :)上,但速度不是很快,但是如果您使用Ramdisk,则可以保存并运行文件' s从那里,它将提高速度 - 一个Ramdisk是一个虚拟磁盘(存储在RAM MEMORY z :),比硬盘快+ -100倍。 - 你可以在这里找到这个免费工具(Imdisk)
答案 2 :(得分:0)
据我所知,我认为不可能,因为换行符扮演语句分隔符,终止上一个命令/表达式。
来自文档:https://autohotkey.com/docs/Language.htm
换行符很有意义:换行符通常充当语句分隔符,终止上一个命令或表达式。 (声明只是该语言中最小的独立元素 表达了一些要执行的行动。)例外情况 是续行
答案 3 :(得分:0)
作为初学者,我可能会使用子程序而不是函数(比如Jim U的答案),不是因为它更好,而是因为我发现它更容易理解。不习惯在ahk中运行。
如果您将以下代码放在脚本的底部(或任何不会打扰您或脚本的地方)......
banana:
Send, ^s
Send, hello world
return
......以下几行就足够了:
right::Gosub, banana