通过Rails通过HTTP远程WSH

我有一个Windows游戏服务器(Mount&Blade:Warband),我试图通过Rails应用程序进行远程控制。 我发现了一种使用Windows Script Hosting向游戏服务器发送文本的方法,如下所示:

Set ArgObj = WScript.Arguments Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "mb_warband_dedicated" For lcv = 0 to ArgObj.Count - 1 WshShell.SendKeys ArgObj(lcv) WshShell.SendKeys "{Enter}" Next WshShell.SendKeys "start" WshShell.SendKeys "{Enter}" 

虽然这感觉很脆弱,但是在我的本地机器上尝试时,它确实有效。 它成功地将焦点转移到游戏服务器,将其参数作为文本发送到游戏服务器,并开始游戏。

我的思路是让我的Rails应用程序在游戏命令POST(使用适当的Rails身份validation和安全授权)时调用WSH可执行文件。 这个工程,如果我远程桌面到运行Rails和游戏服务器的远程机器,但一旦我断开我的远程桌面会话,它不再工作。 Rails服务器收到请求,调用脚本,但是我猜“AppActivate”命令找不到窗口

如果是Linux机器,我想我可以使用命名pipe道。 这里有什么想法? 电源shell? 也许TCL? 我可以杀死游戏服务器进程,编辑configuration,然后重新启动游戏服务器,但是每个人都会断开连接。

如果Rails服务器作为Windows服务运行,则可能会遇到交互式应用程序的会话0隔离问题。

请参阅: http : //blogs.technet.com/b/voy/archive/2007/02/23/services-isolation-in-session-0-of-windows-vista-and-longhorn-server.aspx