<script   language=javascript>   
  var   wsh=new   ActiveXObject("wscript.shell");   
  wsh.run("D:\\abc.exe");   
  </script>这个做成网页,直接运行是正确的,但架设在IIS中却报错。报错:找不到文件"D:\\abc.exe"或其他的组件之一。那个高人解答下,是什么原因?

解决方案 »

  1.   

    D:\\abc.exe应该是客户端机器里面的程序但这种调法一般会出安全提示的
      

  2.   

    IIS 里的权限不够得,不能在IIS里面调用可执行文件,如果可以的话你就不用坐在这里发帖了,病毒满天飞了
      

  3.   

    那怎么做,才能在ASP.NET页面中调用EXE文件?用ocx控件,还是写注册表里面的信息?
      

  4.   

    到底是要调用服务器上的exe还是客户端的exe呀
      

  5.   

    不可能 实现 调用客户端的 EXE
      

  6.   

    用C#里的一个类
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("D:\\abc.exe");
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
    System.Diagnostics.Process.Start(startInfo);
      

  7.   

    可能是问题没有说清楚,我是要实现网页调用本地的exe文件。我现在看到别人说有两种方法,一种就是写本地的注册表:
    Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\papreg]
    @="URL:papreg Protocol"
    "URL Protocol"=""[HKEY_CLASSES_ROOT\papreg\shell][HKEY_CLASSES_ROOT\papreg\shell\open][HKEY_CLASSES_ROOT\papreg\shell\open\command]
    @="\"E:\\Example\\OAexe\\abc.exe\" \"%0\"" 
    能后执行papreg://就可以调用本地的abc.exe文件这个方法有个缺点,就是,路径(@="\"E:\\Example\\OAexe\\abc.exe\" \"%0\"" 
    )是事先写好的,没有做活,大家能不能帮我想个办法,把其路径写活来。还有一种就是利用ocx控件,具体怎么用,现在还在摸索中。有那个大侠知道的么? 
      

  8.   

    楼主你的意思是,,打开你的网页执行我本地的EXE文件,是这样吗?
      

  9.   

    如果这样也可以的话,随便打开一个网页就调用 format c: ,这不乱套了吗?
      

  10.   

    出必要的提示是可以的啊,比如提示它下载控件。比如提示他下载一个你事先写好的注册表文件,叫客户执行下,才能调用本地的exe文件。
      

  11.   

    这样也是可以的啊,把下面这段代码做成.net 版的ActiveX控件 然后用JS来调用,只不过麻烦的是客户端要安装framework
    ,System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("D:\\abc.exe");
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
    System.Diagnostics.Process.Start(startInfo);
      

  12.   

    D:\\abc.exe 应该在IIS 的站点中吧。有放进去么、。
      

  13.   

    frankonlyfine   怎么制作.net版的.ocx?
      

  14.   


    放进去了,abc.exe现在是和网页程序放在同一个目录下
      

  15.   

    刚搜了一下,创建一个htm文件在本地用浏览器打开可以运行本地程序,只是有ActiveX交互安全提示,代码如下:
    <script language="javascript" type="text/javascript">
    var oShell = new ActiveXObject("WScript.Shell");
    var prog = "C:\\Program Files\\Microsoft Office\\OFFICE12\\winword.exe";
    oShell.run ('"'+prog+'"',1);
    </script>将网页通过IIS web服务器以http协议调用后,则出现Automation服务器不能创建对象的错误,无法运行。有人提到用一个叫LaunchInIE的ActiveX控件,看了一下说明,说在客户端安装这个控件并设置注册表后可以通过这个ActiveX控件来运行客户端程序,这是控件的简介:
    A web page can't readily start an application on the client's computer: quite a few webmasters run into this problem.This article presents the free LaunchinIE ActiveX Control that will enable HTML pages to start whatever application on the client's machine, without security warnings.
    To ensure security, LaunchinIE needs to be carefully configured client-side; due to this restriction it's only fit for intranet use.At last, web pages can start Word, Excel, or any other corporate application without complaints. Securely.
    是否确实如此我没有试,楼主感兴趣的话自己看看,ActiveX控件是免费的,说明及下载地址在这里:
    http://www.whirlywiryweb.com/q/launchinie.asp
      

  16.   

    你的exe是什么文件?用什么编的?.net写的软件是可以直接在网页上发布的,点击可以运行,如果是大软件,可以让用户安装,在安装的时候根据安装路径写到注册表里。如果是小软件,就让他下载后运行吧