【问题标题】:ahk sendinput works on button click but not on ^Downahk sendinput 在按钮单击时有效,但在 ^Down 时无效
【发布时间】:2012-12-03 11:19:24
【问题描述】:

使用 Autohotkey,谁能解释为什么这不起作用?

    ^Down::
        Gosub, Close
    return

    Close:
        MsgBox CLOOOOSE
        GuiControlGet, editText,, MyEdit
        WinMinimize TemplateEngine
        SendInput, {raw}%editText%
        MsgBox CLOOOOSE
    return

当我使用按钮时

Gui, Add, Button, gClose x30 y44, Close

这行得通,SendInput 做我想做的事。

如果我使用 ^Down(CTRL + 向下箭头),SendInput 不会做任何事情

我也试过了

^Down::
Close:
    MsgBox CLOOOOSE
    GuiControlGet, editText,, MyEdit
    WinMinimize TemplateEngine
    SendInput, {raw}%editText%
    MsgBox CLOOOOSE
 return

为什么按钮点击和热键最终得到不同的结果,即使它们调用相同的操作? 请帮忙

【问题讨论】:

  • 我在 AutoHotKey_L 上的工作就像一个魅力。我建议尝试另一个 Gosub 标签,因为“关闭”是一个保留字(但它再次与 Win7 + AHK_L 上的标签“关闭”一起使用)
  • 谢谢,问题是 SendInput 在 ^Down 上不起作用,当我使用按钮转到关闭标签时它会起作用。
  • 我建议您首先在 ^Down:: 热键部分放置一个“虚拟”MsgBox 视觉警报,以检查此快捷方式是否正确触发。如前所述,^Down Gosub, Close: 完美运行。

标签: autohotkey


【解决方案1】:

我测试的是:

^Down::
    MsgBox, Cntrl down
    Gosub, Close
    MsgBox, Back to Cntrl Down
return

Close:
    editText=My Message
    MsgBox, CLOSE Subroutine
    SendInput, {raw}%editText%
return

它会显示所有 MsgBox 警报并将我的消息放在记事本中。不知道我能做些什么不同的事情。例程是否在 ^Down 上正确触发,但行为不同?

【讨论】:

  • 例程触发,但我有一个 WinMinimize,您的例程不包括。随着 winminimize 发送输入没有做我所期望的
  • 问题,你为什么要包含一个winMinimize?你想达到什么目的? TemplateEngine 是确切的窗口名称还是您在其他地方定义了 SetTitleMatchMode = 2 ?您在 GuiControlGet 之后检查过变量的内容吗? MsgBox 是否会弄乱您的窗口焦点?只是几个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 2018-09-29
  • 2021-09-26
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多