[AHK粘贴特例后还原剪贴板

问题描述 投票:0回答:1

以下脚本为SQL查询创建一个逗号分隔的列表,但只是拒绝还原原始剪贴板:

#!x::  ;Win+Alt+x
oCB := ClipboardAll ;store original clipboard

StringReplace,clipboard,clipboard,`n,`,,All
StringReplace,clipboard,clipboard,`r,,All

if pos = 0
StringRight, clipboard, clipboard, StrLen(clipboard)-3
testString = %clipboard%
StringReplace,testString,testString,`,,,All
testString := testString * 1
if (testString is integer) {
    } else {
    StringReplace,clipboard,clipboard,`,,'`,',All
    clipboard = '%clipboard%'
}

Send,^v
    ;ClipBoard := oCB ;restore original clipboard (in theory)
Return

最后一条注释行ClipBoard := oCB 应该恢复原始剪贴板,但是添加它会使Send,^v中粘贴的数据成为原始剪贴板。返回后添加ClipBoard := oCB会导致代码被忽略。

添加:

clipboard =  ;
Send ^c
ClipWait
ClipBoard := oCB

返回之前或之后也没有任何改变,因此我们遇到了编译问题,而不是处理延迟问题。如何使它按预期运行?

automation autohotkey autoit
1个回答
0
投票

需要正确使用ClipWait:

#!c::  ;Win+Alt+c
Clip2 := Clipboard ;store original Clipboard
Clipboard := ""
Clipboard := StrReplace(Clip2, A_Space,"+") ;do some stuff
ClipWait
Send,^v
Clipboard := ""
ClipWait
Clipboard := Clip2
Return
© www.soinside.com 2019 - 2024. All rights reserved.