从HTA / VBScript向已打开的.bat窗口发送命令

时间:2017-05-03 09:04:10

标签: batch-file vbscript command hta

对于HTA或任何真正的编码,我都是一个新手。 我可以很好地处理Excel VBA,所以理解VBScript很好。

我目前有一个通过.bat文件运行的程序(我没有构建这个程序,也不知道它是如何写的:)) 我现在启动.bat文件然后如果我想让程序做任何事情我在窗口中解析一个书面命令。

我正在尝试构建一个HTA,以便能够为我做到这一点。我已经能够编写一个脚本来启动.bat文件,但是我无法将它发送到已经打开的cmd / bat窗口。
我搜索了几天和几天发送命令的唯一解决方案是再次调用打开.bat文件,这对我不起作用,因为我需要它在程序运行的当前打开的窗口中。

这是我到目前为止所做的:

<head>
<title>HTA Test</title>
<HTA:APPLICATION 
     APPLICATIONNAME="HTA Test"
     SCROLL="yes"
     SINGLEINSTANCE="yes"
>
</head>

<script language="VBScript">
Sub Launch

Dim objShell :Set objShell = CreateObject("WScript.Shell") 
objShell.Run "cmd.exe /k Program_X.bat"
Set objShell=Nothing

End Sub

Sub Sendxxx
*******CODE NEEDED HERE TO SEND COMMAND "xxx" & enter TO Prgram_X**************
End Sub
</script>

<body>
<input type="button" value="Launch" name="launch"  onClick="Launch"><p> 

<input type="button" value="Sendxxx" name="Sendxxx"  onClick="Sendxxx"><p> 

</body>

如果HTA的主体也有可能,那么.bat窗口中显示的最后一行就是奖金!

1 个答案:

答案 0 :(得分:0)

啊,我有它 - 实际上它是一个简单的解决方案,感谢Rojo的建议。当我运行bat文件时,窗口名为Administrator:= 所以我刚刚做了:

Sub Sendxxx

Dim objShell: Set objShell = CreateObject("WScript.Shell")
objShell.AppActivate ("Administrator: =")
objShell.SendKeys ("xxx") & vbCr

End Sub

&安培;似乎有效了

编辑: 它实际上并不起作用,因为当我在另一台计算机上运行.bat文件时,即使它有cmd窗口和跑步,它没有名字和无法在任务管理器中找到,因此我无法激活它。有想法的人吗?我在这里问过这个具体问题: [https://stackoverflow.com/questions/43780640/bat-cmd-window-doesnt-show-up-in-task-manager-has-no-name][1]