在分配给变量

时间:2015-04-28 12:38:54

标签: autohotkey

这是我的第一个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.我也更新了上面的脚本。当我删除该行时,它按预期工作。谁能告诉我为什么?

2 个答案:

答案 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')); // }); 纠正了问题。