我有一個Windows遊戲服務器(Mount & Blade:Warband),我試圖通過Rails應用程序進行遠程控制。我找到了一種方法使用Windows腳本宿主如下,以文本發送到遊戲服務器:通過Rails通過HTTP遠程WSH
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應用程序在遊戲命令發佈時調用WSH可執行文件(使用適當的Rails身份驗證和安全授權)。如果我將遠程桌面安裝到運行Rails和遊戲服務器的遠程計算機上,這會起作用,但是一旦斷開遠程桌面會話,它就不再工作。 Rails服務器接收到請求,調用腳本,但後來我猜'AppActivate'命令找不到窗口。
如果是Linux機器,我想我可以使用命名管道。這裏的任何想法?電源外殼?也許TCL?我可以殺死遊戲服務器進程,編輯配置,然後重新啓動遊戲服務器,但是每個人都會斷開連接。
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 –
我們'重新使用Windows的RailsInstaller。運行'tasklist/svc'列出'ruby.exe'是的,我相信它是作爲Windows服務運行的,並且你的鏈接是可用的,謝謝。在我能夠確定這是否會產生解決方案之前,我會稍等一會兒,但如果您將此作爲答案發布,我會接受,並且如果我還有其他問題,請提出一個新問題。 – lwiseman