这是我的第一个AHK脚本,我无法让它做我想做的事。在记事本中使用组合键Ctrl + Alt + A,我想跳到一行文本的开头,选择第一个字符,将其复制到剪贴板,并检查它是什么字母。现在,我只是尝试使用MsgBox
检查剪贴板的内容,但是有一个问题:MsgBox
在复制命令之前显示它的内容!这是脚本:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#IfWinActive, ahk_class Notepad
^!a::
Send, {Home}
Send, {LShift Down}{Right}{LShift Up}
Send, ^c
MsgBox, %clipboard%
return
多次运行该命令,您会看到它复制了所选文本 后显示MsgBox
。它显示上一个命令的文本。我可能做错了什么想法?
更新:似乎我忽略了在问题中包含的那小块脚本可能是罪魁祸首:SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
我也更新了上面的脚本。当我删除该行时,它按预期工作。谁能告诉我为什么?
答案 0 :(得分:0)
您是否只是在代码末尾添加了return,
行?
^!a::
Send, {Home}
Send, {LShift Down}{Right}{LShift Up}
Send, ^c
MsgBox, %clipboard%
return,
或者你可以添加一个延迟,这个命令是sleep
,1000 = 1秒。
如果失败,请尝试:
^!a::
Send, {Home}
Send, {LShift Down}{Right}{LShift Up}
Send, ^c
sleep, 200
MsgBox, %clipboard%
return,
答案 1 :(得分:0)
删除 var $enfants = $('#parent').find('option.enfant');
var keys = [];
var values = [];
$.each($enfants, function(i, e) {
if (-1 !== $.inArray($(e).val(), keys) ) {
keys.push($(e).val());
values.push($(e));
}
});
// This lasts 1ms
// $enfants.clone().appendTo($('#inconnu'));
// This lasts 14ms
// $.each(values, function(i, e) {
// $(e).clone().appendTo($('#inconnu'));
// });
纠正了问题。