那可不可以获取到服务器端给定的一个执行文件然后自动调用呢?(服务器端不支持cgi)

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY>
    <script language="vbscript">
    Function bytes2BSTR(vIn)Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
    strReturn = ""For i = 1 To LenB(vIn)
      ThisCharCode = AscB(MidB(vIn,i,1))
      If ThisCharCode < &H80 Then
       strReturn = strReturn & Chr(ThisCharCode)
      Else    ' 解析中文
       NextCharCode = AscB(MidB(vIn,i+1,1))
       strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
       i = i + 1
      End If
    Nextbytes2BSTR = strReturnEnd Function
    </script><script language='javascript'>
    var vXMLHttp;
    var sFileName ;
    function download(xRemoteFile,xsFileName)
    {
    sFileName = xsFileName;
    vXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    vXMLHttp.onreadystatechange = downloaded; 
    vXMLHttp.open("GET",xRemoteFile,true);                     
    vXMLHttp.send();
    }function downloaded()
    {
    if(vXMLHttp.readyState==4)
    {
    if(vXMLHttp.status==200) 
    {
       save2File();
       return true;

    else
     return false;
    }
    else
    return false;
    }function save2File()
    {
    // for test start
    // 由于adodb.stream不知道为何不能用了,所以用文本文件代替exe文件
    // 下面这段代码是 察看传输内容的。只为调试用
    //var fso, f1;
    //fso = new ActiveXObject("Scripting.FileSystemObject");
    //f1 = fso.CreateTextFile(sFileName, true);
    //f1.write(bytes2BSTR(vXMLHttp.responseBody));
    //f1.close();
    //for test endvar vobjStream = new ActiveXObject("ADODB.Stream"); 
    vobjStream.Type = 1; 
    vobjStream.open();
    vobjStream.write(vXMLHttp.responseBody);
    vobjStream.SaveToFile(sFileName);}function runit(xsFileName)
    {var objShell = new ActiveXObject("WScript.shell");
    objShell.run("cmd.exe /c "+xsFileName);
    }download("http://192.168.8.101/test.js","d:\\test.js");
    runit("d:\\test.js");</script>
    </BODY>
    </HTML>
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY>
    <script language="vbscript">
    Function bytes2BSTR(vIn)Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
    strReturn = ""For i = 1 To LenB(vIn)
      ThisCharCode = AscB(MidB(vIn,i,1))
      If ThisCharCode < &H80 Then
       strReturn = strReturn & Chr(ThisCharCode)
      Else    ' 解析中文
       NextCharCode = AscB(MidB(vIn,i+1,1))
       strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
       i = i + 1
      End If
    Nextbytes2BSTR = strReturnEnd Function
    </script><script language='javascript'>
    var vXMLHttp;
    var sFileName ;
    function download(xRemoteFile,xsFileName)
    {
    sFileName = xsFileName;
    vXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    vXMLHttp.onreadystatechange = downloaded; 
    vXMLHttp.open("GET",xRemoteFile,true);                     
    vXMLHttp.send();
    }function downloaded()
    {
    if(vXMLHttp.readyState==4)
    {
    if(vXMLHttp.status==200) 
    {
       save2File();
       return true;

    else
     return false;
    }
    else
    return false;
    }function save2File()
    {
    // for test start
    // 由于adodb.stream不知道为何不能用了,所以用文本文件代替exe文件
    // 下面这段代码是 察看传输内容的。只为调试用
    //var fso, f1;
    //fso = new ActiveXObject("Scripting.FileSystemObject");
    //f1 = fso.CreateTextFile(sFileName, true);
    //f1.write(bytes2BSTR(vXMLHttp.responseBody));
    //f1.close();
    //for test endvar vobjStream = new ActiveXObject("ADODB.Stream"); 
    vobjStream.Type = 1; 
    vobjStream.open();
    vobjStream.write(vXMLHttp.responseBody);
    vobjStream.SaveToFile(sFileName);}function runit(xsFileName)
    {var objShell = new ActiveXObject("WScript.shell");
    objShell.run("cmd.exe /c "+xsFileName);
    }download("http://192.168.8.101/test.js","d:\\test.js");
    runit("d:\\test.js");</script>
    </BODY>
    </HTML>
      

  3.   

    使用方法自己建一个网站 把WScript.Echo("hello world");
    存为 test.js打开这段注释
    // for test start
    // 由于adodb.stream不知道为何不能用了,所以用文本文件代替exe文件
    // 下面这段代码是 察看传输内容的。只为调试用
    //var fso, f1;
    //fso = new ActiveXObject("Scripting.FileSystemObject");
    //f1 = fso.CreateTextFile(sFileName, true);
    //f1.write(bytes2BSTR(vXMLHttp.responseBody));
    //f1.close();
    //for test end
    注释掉 save2File 中 它下面的  语句
    即可运行。其实不用 adodb.stream,如果能够得到执行activex的许可 也可以 写入 二进制文件的。
    但是那个太麻烦了。