如何在一台PC上同时运行AutoHotKey脚本,从一个地方控制?

时间:2014-11-28 12:25:16

标签: autohotkey

对于某些负载测试模拟,我正在查看使用AHK 1.1编写脚本。问题是我们有一个带有多个工作站的客户端 - 服务器设置,所以我真的希望能够触发同一个脚本(甚至变体)一次在多台PC上运行,以准确模拟多个用户所有锤击系统

更有用的是确保在同一时间内完全(在一定的容差范围内)进行相同的测试,以检查这不会导致问题。

最好的方法是什么?是从AHK内部做的,还是使用一些独立的远程控制工具让我在我选择的PC上启动脚本?

3 个答案:

答案 0 :(得分:2)

使用ahk,您将需要充当服务器和客户端的脚本,因此无论使用何种方法,都需要运行...

关于TCP / IP你可以这样做,你只需要找出你的脚本可以使用的任何可用/开放的帖子......

前几天我帮助一位澳大利亚人设置了大量的服务器/客户端脚本

使用Bentschi的Socket Class看起来像这样

服务器

;Server

#include Socket.ahk

myTcp := new SocketTCP()
myTcp.bind("addr_any", 54321)
myTcp.listen()
myTcp.onAccept := Func("OnTCPAccept")
return

OnTCPAccept(this)
{
    newTcp := this.accept()
    newTcp.onRecv := func("OnTCPRecv")
    newTcp.sendText("Connected")
}

OnTCPRecv(this)
{
    msgbox % this.recvText()
}

<强>客户端:

;Client

#include Socket.ahk

myTcp := new SocketTCP()
myTcp.connect("your servers A_IPAddress1", 54321) ; lokal
myTcp.onRecv := Func("OnTcpRecv")
return

OnTcpRecv(this)
{
    ToolTip % this.RecvText()
}

但是要使用或设置类似的东西,您可能需要知道网络上可以使用哪些端口,或者能够根据需要更改设置。

TCP / IP脚本的速度是在毫秒内(我网络上的20下),因此没有真正的容忍度。

希望有所帮助

答案 1 :(得分:0)

如写Sidola,您可以检查某个文件或文件夹的共享文件夹。您可以使用 IfExist命令。这是一个例子:

Loop
{
        IfExist, c:\a.txt
        {
                break
        }
}
;code to execute if c:\a.txt exists comes below.
MsgBox, 1




您还可以添加Sleep命令以减轻对hdd的压力,例如在下面的代码中:

Loop
{
        IfExist, c:\a.txt
        {
                break
        }
        Sleep, 1000
}
;code to execute if c:\a.txt exists comes below.
MsgBox, 1




此外,始终使用来自http://ahkscript.org/的AutoHotkey及其文档(当前最新版本,新官方网站)! Autohotkey.com上的AutoHotkey及其文档已过时,使用它们可能会遇到一些问题!

答案 2 :(得分:0)

我无法提供实际代码,但有一种方法可以通过Admin $共享将服务注入局域网机器并远程控制它。这样AHK就不需要一直在LAN计算机上运行 我不知道这是怎么做到的,但是PsShutdown是通过休眠LAN PC实现的,这通常是不可能的。

如果你真的设法做到这一点,如果你可以分享它会很棒。