我写了这个简单的AHK脚本,它正在运行。但右键单击系统图标 - 暂停/暂停,它仍然继续工作。是因为我的代码中有什么东西吗?或关于win7 x64?
#Persistent
return
OnClipboardChange:
WinGetActiveTitle, OutputVar
IfWinExist, collect.doc
{
WinActivate ; use the window found above
send,^v
send,{Enter}
winactivate,%Outputvar%
}
else
tooltip,need collect doc,400,400
Sleep 100
return
答案 0 :(得分:1)
Pause和Suspend都不是要阻止自动调用的子程序,如OnClipboardChange
或GuiClose
。 Pause
仅阻止当前线程,这意味着每个新创建的线程仍将运行,剪贴板更改会创建新线程。因此,Pause
无法阻止它
在这种情况下,您需要在“事件子例程”中实现一个自己的逻辑,用于检查某种状态。
按照你的前提来使功能取决于暂停的状态,一种相当简单的方法是检查内置的A_IsPaused
:
OnClipboardChange:
if(A_IsPaused) {
return
}
msgbox, 'sup?
return
有很多方法可以实现这一点。您还可以定义自己的热键来激活/停用/切换自定义状态。
<强> P.S:强>
激活一个窗口只粘贴一些文字似乎有点不必要和麻烦我;查看Control
命令(例如Control, EditPaste)或通过 COM 访问Word。根据您的操作,我相信直接写入文本文件和/或内存存储可能是运行Word实例的更好替代方案。
<强> P.P.S:强>
你可能要小心这种疏忽的剪贴板记录器。我假设您不希望每种类型的数据(例如密码)出现在那里。