编程环境:asp.net
后台语言:C#
功能:在web网页上放一个按钮,客户端点击该按钮,则自动运行客户端安装的某个程序(如winword.exe)。首先判断,如果客户端安装了该程序,则直接自动运行;如果没有安装,则提示下载安装。
目前的思路:
1、读取客户端注册表,查看是否安装了winword.exe。如果查到,则读取安装路径;如果查不到,则提示没有安装;
2、运用process.start("文件路径名")
目前实际情况:
对于第一步,如何查找winword.exe? 代码如何实现?而且是查找客户端的注册表!!
对于第二步,测试运行代码,没有任何反应!why??????
难点:b/s程序代码大都是在服务端运行的,如何对客户端进行操作?是不是要用script脚步语言?如何实现?谢谢各位高手!!!

解决方案 »

  1.   

    1、用javascript操作注册表,用JavaScript执行客户端程序
    2、你的process.start是在服务器端执行的,跟客户端没关系
      

  2.   

    回复楼上:我就是在服务端测试的process.start(),点击按钮直接process.start("c:\\program file\\microsoft office\\office11\\winword.exe");  没有任何反应
      

  3.   

    能不能提供javascript操作客户端注册表的代码?不胜感激
      

  4.   

    http://www.google.cn/search?hl=zh-CN&newwindow=1&q=javascript%E6%93%8D%E4%BD%9C%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%B3%A8%E5%86%8C%E8%A1%A8%E7%9A%84%E4%BB%A3%E7%A0%81&btnG=Google+%E6%90%9C%E7%B4%A2
    关键是你执行不了这个exe
      

  5.   

    哪如何是好?该怎样实现b/s调用c/s程序????
      

  6.   

    我就是在服务端测试的process.start(),点击按钮直接process.start("c:\\program file\\microsoft office\\office11\\winword.exe");  没有任何反应
    这个,你是启动了服务器端的程序。这个问题,自己研究下activex控件吧,大多客户端的危险操作,如启动程序,访问注册表啊,都需要用客户端的ActiveX控件,虽然js也能操作,但是不会有权限执行的。
      

  7.   

    你是要在客户机还是服务端运行该EXE,如果是客户机的话,还是考虑把程序做成activex吧。
      

  8.   

    提供一个可行的思路,供参考一下:
    1:使用VC编写一个MFC的ActiveX控件放到你的网页上,通过控件ActiveX的版本可以让用户自动的下载这个ActiveX并自动注册。
    2:在ActiveX里使用WinExec等方式来运行Word,或通过VC来操作注册表。
    当然这里有一个问题就是需要在客户机上去掉禁止ActiveX下载及运行的选项才能正常工作。
      

  9.   

    提供一个可行的思路,供参考一下:
    1:使用VC编写一个MFC的ActiveX控件放到你的网页上,通过控件ActiveX的版本可以让用户自动的下载这个ActiveX并自动注册。
    2:在ActiveX里使用WinExec等方式来运行Word,或通过VC来操作注册表。
    当然这里有一个问题就是需要在客户机上去掉禁止ActiveX下载及运行的选项才能正常工作。
      

  10.   

    没用的,理论上js能做到,例如操作注册表等等,但iis有限制,浏览器有限制,客户端还有杀软……你能除去所有客户端的限制么?activeX客户体验相当不好,基本不考虑
      

  11.   

    activeX客户体验相当不好,基本不考虑
    ------------------------------------
    太强硬了。
      

  12.   

    寫個web service大家都能用.
      

  13.   

    通过activeX操作程序
    查询注册表可用JS
    var  WshShell  =  new  ActiveXObject("WScript.Shell");  
          keyValue  =  WshShell.RegRead("");  
         alert(keyValue);  
     WshShell .run("");  可运行本地程序
      

  14.   

    回楼上:编译运行的时候,出现“automation服务器不能创建对象”!
    就是下面代码的问题:var  WshShell  =  new  ActiveXObject("WScript.Shell");  
    不知道怎么回事??
      

  15.   

    我写得代码:
    <script language="javascript">
      function  word(){
        var  wsh = new ActiveXObject("Wscript.Shell");
        wsh.run("c:\\winword.exe");
    </script>调试运行,出现“automation服务器不能创建对象”! 
      

  16.   

    private void openSpcSoft()
        {
            try
            {
                Process myprocess = new Process();
                myprocess.StartInfo.FileName = @"c:\\ZLtj\\zltj.exe";
                myprocess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
                myprocess.Start();
            }
            catch (Exception err)
            {
                thePubJs.Alert("aaaa!");
                Response.Write(err.ToString());
            }
        }
    这个是指定路径运行的代码,LZ看看有帮助没
      

  17.   

    现在发现 process.start()是服务器端执行的代码,与“要在客户端运行某程序”不符合,暂时不考虑找个方法了!
      

  18.   

    activeX 没写过啊!呵呵,不会写哟。