我在运行 osx 的 MacBook 上安装了 mono 和 ironahk。
example.ahk 运行良好并显示“hello world”消息框。
当我尝试输入一个带有热字符串的文件时,例如:
:*:狗::[电子邮件保护]
它崩溃了。我做错了什么。热字符串在 Windows XP 上运行正常。
答案1
您的热线:
:*:dog::[email protected]
在 Windows 7x64 上的 AutoHotKey 上运行良好。IronAhk 崩溃可能是因为它循环,因为字符串“dog”是输出字符串的一部分“[电子邮件保护]“。换句话说,IronAhk 的行为‘可能’有所不同,因为它想要输出:
dalmation@dalmation@dalmation@dalmation@[email protected]
,不断替换字符串中的“dog”。我不知道 IronAhk 是从头开始编写的,还是仅仅是针对各种平台编译的 Ahk 的修改版本。
在 AutoHotKey 中,字符串dog
不会触发,因为它仅在它是一个单独的单词时起作用dog
(不在字符串中,除非您使用 :?*:)。
不幸的是,IronAHK 还没有关于热字符串的文档。
第一个建议:首先尝试用不同的触发词启动输出字符串。
:*:dpe::[email protected]
第二个建议:改用 send
:*:dpe::Send, [email protected]
第三个建议:在多行脚本中使用 send
:*:dpe::
Send, [email protected]
Return
最后但并非最不重要的一点是,使用字典中的单词来触发热字符串可能会导致写作时的挫败感。这就是为什么我的大多数触发词都以独特字符\或=或]或结尾.。
在你的情况下,应该是 :*:dog::。它\位于Enter钥匙附近,因此很容易找到。
我实际上有几类热字符串,它们都具有唯一的结束字符:
这样我就可以在不同的语言中使用相同的触发字符串。我有时甚至用它来“翻译”难以书写的单词。
\是荷兰语,
=是英语,
]是通用单词(例如 AutoHotKey)。
.是用正确的点来散布缩写。
这样我就可以输入:
eg.
并将其变成e.g.
eg=
并将其变成for example
eg\
并将其变成even geduld
。