• 如何通过js来打开客户端的应用程序


    在网上获得了如下资料:
      <body MS_POSITIONING="GridLayout">

        <form id="Form1" method="post" runat="server">
    请输入要运行的程序:<br/><input name=exe type=text size=20 value="regedit"><BUTTON class=button onclick="Run(exe.value)">确定</BUTTON><BUTTON class=button onclick=exe.value="";>重新输入</BUTTON><br/>
    <BUTTON class=button onclick="Run('notepad')">记事本</BUTTON><br/>
    <BUTTON class=button onclick="Run('mspaint')">画图板</BUTTON><br/>
    <BUTTON class=button onclick="Run('calc')">计算器</BUTTON><br/>
    <BUTTON class=button onclick="Run('cmd')">cmd</BUTTON><br/>
    <BUTTON class=button onclick="Run('Regedit')">Regedit</BUTTON><br/>
    <BUTTON class=button onclick="Run('Msconfig')">Msconfig</BUTTON><br/>
    <BUTTON class=button onclick="Run('file:///d:\hello.exe)">WINAMP</BUTTON><br/>
    <BUTTON class=button onclick="Run('IEXPLORE.EXE')">IE</BUTTON><br/>
    <BUTTON class=button onclick="Run('..')">..</BUTTON><br/>
    <BUTTON class=button onclick="Run('%windir%')">%windir%</BUTTON><br/>
    <BUTTON class=button onclick="Run('%temp%')">%temp%</BUTTON><br/>
    <BUTTON class=button onclick="Run('file:///D:/Program%20Files/Tencent/qq.EXE')">WINAMP</BUTTON><br/>
         </form>
    <SCRIPT language=JavaScript>
    function Run(command)
    {
    window.oldOnError = window.onerror;
                    window._command = command;
                    window.onerror = function (err)
                    {
    if (err.indexOf('utomation') != -1)
    {
    alert('命令' + window._command + ' 已经被用户禁止!');
    return true;
    }
    else
    return false;
    }
                    var wsh = new ActiveXObject('WScript.Shell');
                     if (wsh)
    wsh.Run(command);
                    window.onerror = window.oldOnError;
    }

    </SCRIPT>
      </body>

    该段代码打开如:word,excel,notepad,画板等都能打开,
    但是自已写的应用程序为什么打不开呢?报错说:
    系统找不到指定的路径。





    想要IE或word点击超链接打开本地的EXE应用程序,这个怎么办?

    比如点击这样的链接

    <a href="vip:123-MonacoGP-19279-Senna">打开我的协议</a>

    将打开我的EXE应用程序?

    首先你要修改注册表,要让IE看的懂像href="vip:123-MonacoGP-19279-Senna" 这样的协议.

    c#如何写注册表?

    //写注册表
    RegistryKey key = Registry.ClassesRoot.CreateSubKey("vip");
    key.SetValue("", "URL:vip Protocol");
    key.SetValue("URL Protocol","");
    RegistryKey Subkey= key.CreateSubKey("DefaultICon");
    Subkey.SetValue("", "exe文件路径");
    Subkey = key.CreateSubKey("shell").CreateSubKey("open").CreateSubKey("Command");
    Subkey.SetValue("","exe文件路径");
    

    这段代码是在 注册表 HKEY_CLASSES_ROOT 下新建vip 的键

    结构是这样的

    HKEY_CLASSES_ROOT
    vip
      (Default) = "URL:vip Protocol"
      URL Protocol= ""
      DefaultIcon
       (Default) = "c:\somepath\APPTest.exe"
      shell
       open
        command
         (Default) = "c:\somepath\APPTest.exe" "%1"

    创建完以后当你点击这样(vip:123-MonacoGP-19279-Senna)的链接,就可以打开外部的自己定义的应用程序了.

    当然winform 应用程序还可以接收你传过来的值

    比如 EXE应用程序启动的时候接收链接传过来的 123-MonacoGP-19279-Senna字符串,你可以在winform 启动的时候捕获这个值

    [STAThread]
    static void Main(string[] args)
    {
    if (args.Length > 0)
    {
    //arg[0]就是刚刚链接传过来的
    // 赋值=arg[0];
    }
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
    }
    

    如何给IE工具栏添加图标和按钮,菜单,打开自己的应用程序?
    可以看看这篇
    http://www.codeproject.com/useritems/CorKatIEExtension.asp

    关于快速的操作注册表
    你可以参考
    http://www.codeproject.com/cs/system/quickregistry1.asp

    本文来源http://www.codeproject.com/aspnet/APPHyperlinks.asp

    //

    上面所有链接文章的源代码下载地址

    http://www.blogjava.net/Files/wujun/APPTest.rar

    //END


     

  • 相关阅读:
    junit spring
    DFU协议介绍
    USB枚举过程
    触摸板单点描述符
    Linux下使用codeblocks交叉编译ARM-LINUX-GCC程序
    树莓派 原理图 摄像头接口定义
    usb描述符详细讲解
    常用的算法思想
    STM32f407 DCMI方式驱动 OV2640
    linux echo命令-转
  • 原文地址:https://www.cnblogs.com/goody9807/p/763983.html
Copyright © 2020-2023  润新知