1

我有这个 AutoHotkey 脚本有一个奇怪的问题。它在 3 个工作站中使用,但在一个工作站中,ControlSend 似乎不起作用,因为热键在程序 A 中不起作用。所有三台机器都有 Windows XP 并且是 Pentium 4 级别的机器,具有大部分相同的软件,脚本在exe形式。我尝试了很多不同的方法将热键发送到程序 A,但似乎没有任何效果。

该脚本的想法只是捕捉一个热键并在其正常功能之外单击另一个窗口。正常功能只是不起作用。

任何想法可能是问题的根源以及我应该在哪里寻找它?

#IfWinActive, Program A
^H::
IfWinActive, Program A
   {
    ControlFocus, MDIClient1, Program A, , , 
    ControlSend, , ^H, Program A, , ,
    ControlClick, X46 Y135, Program B, , LEFT , 1
    return
   }
4

2 回答 2

1

一种可能性 - 您正在指定 X 和 Y 坐标,而这些坐标可能是相对的。大字体与小字体、屏幕分辨率等都可能导致问题。

该指令适用于程序 B,因此我不确定这是您的问题。您可以尝试拆分脚本的某些部分并将它们分配给不同的热键,然后一次尝试一个。

编辑:我也会尝试以非 exe 形式(只是一个基本的 .ahk 脚本),看看是否有区别。

于 2009-12-13T03:17:48.007 回答
1

其他要尝试的事情:

  • 使用^h代替^H(大写)
  • 尝试使用不同的热键来触发操作
  • Toy with ~^H,它通过原始热键(这可能很难,因为在那之后你正在做一些点击 - 不确定脚本的用途)
于 2010-01-18T03:03:27.897 回答