autohotkey限制脚本仅运行指定的程序

时间:2015-08-13 16:21:05

标签: autohotkey

我使用Teraterm作为我的终端程序。我的问题是,只有在我参加teraterm计划时才能让我的脚本运行。如果我在另一个应用程序中,有没有办法让它进入teraterm?

脚本效果很好,请分享给使用teraterm的任何人。

我们总是使用在包含10.155.3.8的窗口标题中显示的相同服务器ip。该文字始终在标题中。

如何让它仅在teraterm中执行。我知道这是一个非常简单的问题但是我花了几天时间环顾四周,我们将非常感激。

如果你有任何基础教程网站我会非常感激。 我是一个编程新手。

::ttwa:: ; change teraterm window name to current device or state.
SetTitleMatchMode, 2     ;// allow partial window title matches
#IfWinActive, 156.99.121.173,  156.99.121.173

send !e
sleep 10
send s
send {enter 100}
sleep 100
Send {click 3}
send !s
sleep 10
Send w
sleep 10
send %clipboard%
sleep 100
;send {backspace}
sleep 10
send {enter}
send !e s {enter}
send {enter 10}
Clipboard :=
return

2 个答案:

答案 0 :(得分:1)

有几种方法:

  1. 分配一个热键,您可以按这个热键来启动脚本:

    ^+F1::
    .... send stuff
    ....
    return
    
  2. 等待teraterm窗口出现(WinWait)或变为活动状态(WinWaitActive):

    winwait, teraterm ; change to the actual window qualifications
    .... send stuff
    ....
    return
    
  3. 从您的脚本运行teraterm,因此您将运行脚本图标而不是直接运行teraterm:

    run teraterm ; change to the actual path
    winwait, teraterm ; change to the actual window qualifications
    .... send stuff
    ....
    return
    

答案 1 :(得分:1)

好。对我来说,你的脚本中已经有了答案。

来自此处的文档:#IfWinActive

  

创建上下文相关的热键和热字符串。这样的热键表演   根据窗口的类型,执行不同的操作(或根本不执行任何操作)   有效或存在。

您只需要让脚本执行该要求,而不是需要的顺序。

SetTitleMatchMode, 2
#ifWinActive, 156.99.121.173,  156.99.121.173 ;Assuming this is correct
::ttwa:: ; change teraterm window name to current device or state.
send !e
sleep 10
send s
send {enter 100}
sleep 100
Send {click 3}
send !s
sleep 10
Send w
sleep 10
send %clipboard%
sleep 100
;send {backspace}
sleep 10
send {enter}
send !e s {enter}
send {enter 10}
Clipboard :=
return

至于有关进一步了解AutoHotkey的建议,我强烈建议您从官方Tutorial开始。