【发布时间】:2016-08-26 19:17:17
【问题描述】:
!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 循环。我让它通过帖子工作:Looping clipboard and errorlevel evaluation not working as expected
问题 当我进行选择并按 alt + c 时,有时会卡在我实现的无限循环中。但正如您从该代码中看到的那样:
clipboard := ""
while( StrLen(clipboard) < 1 )
{
Send, ^{ins}
Sleep, 50
}
MsgBox % ClipBoard
无限循环在其自身中包含一个继续重新发送 ^{ins}。出于某种原因,我的选择未被识别为选择。虽然它处于无限循环中,但我尝试重新选择文本。然后它会立即识别它并将我的选择复制到剪贴板。可惜!选择不完整,因为它走得太快了。 这个问题并不总是这样。有时它会识别选择的第一个位置!所以有时它会将我的选择复制到我的剪贴板,有时不会。如果没有,则重新发送 ^{ins} 似乎不起作用。我不想让用户重新选择他的选择。有可能吗?
【问题讨论】:
-
Khalil,您知道您可以而且应该接受或讨论您的问题的答案吗?在过去的几天里,您提出了几个问题,但没有接受任何答案。
标签: autohotkey