如何使用 AutoHotKey 保存多个单独的文本?

如何使用 AutoHotKey 保存多个单独的文本?

我不知道这是否有可能,但这里有一个更好地说明的例子。

假设我们有一个小单词列表:

-房子

-电脑

-衣服

-人类

假设我们可以使用 ctrl + a 选择 house。现在如果我们想选择下一个单词,我们按 tab 键,然后再次按 ctrl + a。

我希望每个单词都保存在某个地方,所以当我按下按钮 f1 时,房子就会被粘贴。当我按下 f2 时,计算机就会被粘贴,等等。

当我达到特定数量的单词时,我希望我们清空“缓存”或任何它可能被称为的东西:p

使用 autohotkey 可以实现这一点吗?我有一些基本知识,但我认为这有点冒险。

答案1

; Create an object (array) to save the selected word (value) 
; each time you press your key (combination): 

MyArray := []
Index := 0
MaxIndex = 12       ; specific amount of words


; select next word and press your key (e.g. esc) to save the selected word in the array:

esc::
ClipSaved := ClipboardAll  ; save the entire clipboard to the variable ClipSaved
clipboard := "" ; empty clipboard
Send, ^c        ; copy the selected word
ClipWait 1      ; wait for the clipboard to contain data
If !ErrorLevel  ; If NOT ErrorLevel clipwait found data on the clipboard
{
    Index++     ; checks the number in the variable "Index" and increases it by 1, each time you press esc.
    if (Index = MaxIndex+1) ; when the specific amount of words is exceeded
    {
        Index := 1      ; set this variable to 1
        MyArray := []   ; recreate the object (empty the array)
    }
    MyArray.Insert(Index, clipboard)    
}
Sleep, 300
clipboard := ClipSaved  ; restore original clipboard
return

f1:: SendInput, % MyArray[1]
f2:: SendInput, % MyArray[2]
f12:: SendInput, % MyArray[12]

为了更好地理解整个背景,请阅读 https://www.autohotkey.com/docs/Tutorial.htm#s7

相关内容