我必须在asp.net的客户端机器中调用可执行文件并获取返回参数,我一直在寻找一个例子,但我找不到它。
这可以从JavaScript中的一个exe恢复输出参数吗?
我知道我可以写:
var WshShell = new ActiveXObject(“WScript.Shell”); var oExec = WshShell.Exec(“My.exe”);
但是客户端可执行文件返回0或1,表示值是我需要收集的值
提前致谢
答案 0 :(得分:3)
基于浏览器的JavaScript无法在客户端计算机上调用可执行文件;这样做将是一个灾难性的安全问题。如果必须在客户端计算机上运行可执行文件,请考虑要求用户安装.NET应用程序,ActiveX控件或类似Java的内容,如果您希望与平台无关。
根据您要执行的操作,您可能不需要在客户端计算机上运行EXE;您可以使用标准的云类型场景(客户端上的JS或SilverLight,服务器上的Web服务或WCF)进行操作。但是,如果没有关于您的情况的更多信息,则无法分辨。
编辑:根据您使用ActiveXObject.Exec
方法的评论,您可以使用方法返回的StdOut
对象的WshScriptExec
属性。来自MSDN's article on the StdOut property:
if (!oExec.StdOut.AtEndOfStream)
{
input += oExec.StdOut.Read(1);
//...
}