!c::
file_name = footnote.ini
restore_original_clipBoard := clipboard
clipboard =
KeyWait, Alt
KeyWait, c ;small c
BlockInput, on
SendEvent, ^{ins} ;^c doesn't work
ClipWait, 2 ; Wait for the clipboard to contain text.
if ErrorLevel
{
MsgBox Failed to save the selection: %clipboard%
exit
}
BlockInput, off
save_selection := clipboard
问题:尽管进行了选择,但 Sendevent ^{ins} 不会将其保存到剪贴板。有时我必须重复我的热键,alt + c 几次,然后才能将选择复制到剪贴板。KeyWait 应该确保我只处理 ^{ins} 而没有任何其他密钥。我在这里做错了什么?
更新 我试图强制将选择复制到剪贴板的方法之一是使用 while 循环。我让它通过帖子工作:循环剪贴板和错误级别评估未按预期工作
问题 当我进行选择并按 alt + c 时,有时会卡在我实现的无限循环中。但正如您从该代码中看到的那样:
clipboard := ""
while( StrLen(clipboard) < 1 )
{
Send, ^{ins}
Sleep, 50
}
MsgBox % ClipBoard
无限循环在其自身中包含了 ^{ins} 的持续重新发送。出于某种原因,我的选择未被识别为选择。虽然它处于无限循环中,但我尝试重新选择文本。然后它会立即识别它并将我的选择复制到剪贴板。可惜!选择不完整,因为它走得太快了。这个问题并不总是这样。有时它会识别选择的第一个位置!所以有时它会将我的选择复制到我的剪贴板,有时不会。如果没有,则重新发送 ^{ins} 似乎不起作用。我不想让用户重新选择他的选择。那有可能吗?