【发布时间】:2019-09-07 00:18:12
【问题描述】:
我有下面的简单代码,它发送剪贴板中文本的击键,字符之间有 15 毫秒的延迟(我用它来遍历大量的树视图元素列表)。
问题:如果我将“text1”复制到剪贴板,然后复制“text2”,则此脚本会输出“text1text2”而不是单独的“text2”。
如果我重新加载脚本,它会打印“text2”。
下面的代码是否有错误,或者是在 Autohotkey 1.1.14.03 中实现 %clipboard% 的错误?
#v::
textToType=" "
textToType=%clipboard%
LoopCount:=StrLen(textToType)
;StringLen, LoopCount, textToType
Array%LoopCount%:=textToType
loop %LoopCount%
{
theChar:=Array%A_Index%
Send %theChar%
sleep 15
}
return
更新:感谢您指出更聪明的方法,但我仍然想弄清楚上面的代码有什么问题。
更新 2:
错误在于我对 AHK 语法的理解。 Array%LoopCount%:=textToType 将 textToType 中的整个字符串值分配给名为“Array”的 STRING 数组的第 (LoopCount) 个 STRING 元素。
更新 3: (感谢@John Y 的澄清)
实际上,在传统意义上,根本没有“声明”的数组。您只有一堆单独的变量,根据需要动态创建,它们的名称末尾带有数字。 Array1 和 Array2 不是某些 Array 对象中的元素。它们只是两个完全独立的变量。 AutoHotkey 提供了一种将数字粘贴到名称末尾的方法,因此您可以像使用数组一样使用它们。
【问题讨论】:
标签: autohotkey