autohotkey 脚本只有在每次创建新的记事本文件时才有效

autohotkey 脚本只有在每次创建新的记事本文件时才有效

我对 AHK 的使用经验很少,但经过反复尝试,我成功编写了一个脚本,节省了大量时间。不知何故,它停止工作了,现在我正试图排除故障,AHK 的行为让我很困惑,因为只有当我每次要求脚本创建一个新的记事本文件而不是重复使用它时,它才会工作。

所以……我的原始脚本允许我在记事本中向现有的制表符分隔术语表(文件名:“词典”)添加行。我会在 Chrome 中突出显示一个术语并按 #s(表示“源”),我的术语将被复制到我的词汇表中,后跟一个制表符;然后我会突出显示翻译的术语并按 #t(表示“目标”),它将被复制到制表符的右侧,将光标移动到下一行,并最小化记事本。这是我的原始脚本:

原始 ahk 脚本

我愉快地使用了几个月,直到有一天它停止工作。我试图找出它的问题所在,并能够确定问题出在记事本文件上。如果

 Winactivate, lexicon - Notepad

我用

 run Notepad
 WinActivate Notepad

每次我按 #s 时,它都会创建一个新的记事本文件,并将突出显示的术语粘贴到其中,即有点我希望它做什么,只是我需要它发生在我现有的“词典”文件中,而不是将每个术语复制到新的、单独的记事本实例中。

有人能帮我找出这些小精灵吗?

非常感谢!!!

伊扎

答案1

尝试添加

WinWaitActive, lexicon - Notepad

Winactivate, lexicon - Notepad

尝试更换

winactivate, chrome

winactivate, ahk_exe chrome.exe

将文本写入文件的最简单方法是使用文件追加

#s::
clipboard = ; empty anything in the clipboard
Send ^c ; copies highlighted term
ClipWait, 0.5
FileAppend, %clipboard%%A_Tab%, C:\lexicon.txt
Return


#t::
clipboard = ; empty anything in the clipboard
Send ^c ; copies highlighted term
ClipWait, 0.5   
FileAppend, %clipboard%`n, C:\lexicon.txt
; Run C:\lexicon.txt
Return

相关内容