在 AHK 脚本中,我想将之前通过 ClipboardAll 从剪贴板读取的数据转换为我可以操作的字符串,但很奇怪的是 StrGet() 无法做到这一点。
!2:: clipget()
clipget()
{
clip := ClipboardAll
MsgBox % clip
MsgBox % NumGet(clip)
MsgBox % StrGet(clip)
Return
}
首先 MsgBox 返回空,因为剪辑不是字符串,正如预期的那样。
第二个返回位数据的数字表示形式,如预期的那样。
第三个没有返回任何内容,不符合预期。
我知道我可以首先使用 Clipstr = Clipboard 来将其转换,但随后我必须读取剪贴板两次,如下所示:
clip := ClipboardAll
clipstr := Clipboard
同时获取字符串数据和位数据,但这看起来不太酷,并且如果剪贴板上的数据很大,则需要更长的时间。
也可以是一种愚蠢但实用的方式
Clipboard := clip
Sleep 500
clipstr := Clipboard
不用说,这不是我想要的。
那么,有没有办法从剪贴板中获取字符串所有位数据,类似于
clip := ClipboardAll
clipstr := MagicalFunction(clip)
?
我不确定这是否有帮助。但剪贴板并不是当前复制的那段字符串。剪贴板是您的计算机保存复制内容的地方,您可以在其中找到以前复制的内容。
我在 ahk 的剪贴板文档中找到的代码是这样的
Loop, parse, clipboard, `n, `r
{
MsgBox, %A_LoopField% is your current copied first line..
}
我不太熟悉 ahk 的变量系统,但我认为这应该给出 %A_LoopField% 的字符串输出
您需要内置变量“A_Clipboard”。
根据 ClipboardAll 的文档:
“内置变量 A_Clipboard 反映了以纯文本形式表示的 Windows 剪贴板的当前内容。”