如何解决区分剪贴板更改的来源
#Persistent
FileEncoding,UTF-8
OnClipboardChange("ClipChanged")
return
ClipChanged(Type) {
Now := A_Now
FormatTime,time,Now,dd.MM.yyyy HH:mm:ss
FileAppend,% Format("{} '{}'`n",Clipboard),D:\clipboard_log.txt
}
现在,当我更改剪贴板时,我想忽略场景。我想记录仅由外部应用程序所做的剪贴板更改。我想出了一个主意:
#Persistent
FileEncoding,UTF-8
OnClipboardChange("ClipChanged")
global clipChangedByMe := false
return
ClipChanged(Type) {
if (clipChangedByMe)
{
clipChangedByMe := false
}
else
{
Now := A_Now
FormatTime,dd.MM.yyyy HH:mm:ss
FileAppend,D:\clipboard_log.txt
}
}
^c::
clipChangedByMe := true
Clipboard := ClipboardAll
return
出于某种原因,ClipChanged
事件不会在第 Clipboard := ClipboardAll
行之后触发。有什么问题吗?
解决方法
乍一看,我在这里看到了几个问题。如果您想要保留 Ctrl + C 的 original function,您必须使用波浪号前缀:~^c
。其次,Clipboard
和 ClipboardAll
都是内置变量,您出于某种原因将一个分配给另一个?
更新:嗯,以下似乎有效:
Global clipChangedByMe := false
OnClipboardChange("ClipChanged")
~^c::clipChangedByMe := true
ClipChanged() {
If (clipChangedByMe)
clipChangedByMe := false
else {
FormatTime,time,dd.MM.yyyy HH:mm:ss
FileAppend,% Format("{}`n{}`n`n",Clipboard),D:\clipboard.log
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。