zoukankan      html  css  js  c++  java
  • url protocol

    首先注册服务

    方法1,保存为reg文件直接执行,需要按需修改路径

     Windows Registry Editor Version 5.00  
    [HKEY_CLASSES_ROOTEasyPrint]  
    "URL Protocol"="C:\Program Files\EasyPrint\EasyPrint.exe"  
    @="EasyPrintProtocol"  
    [HKEY_CLASSES_ROOTEasyPrintDefaultIcon]  
    @="C:\Program Files\EasyPrint\EasyPrint.exe,1"  
    [HKEY_CLASSES_ROOTEasyPrintshell]  
    [HKEY_CLASSES_ROOTEasyPrintshellopen]  
    [HKEY_CLASSES_ROOTEasyPrintshellopencommand]  
    @=""C:\Program Files\EasyPrint\EasyPrint.exe" "%1""  

    方法2,在程序中自动注册服务,此操作可以放到安装程序中,根据实际情况获取path即可

    var path = "E:\code\EasyPrint\EasyPrint\bin\Debug";
                List<string> cmds =
                new List<string>{
                   "/c" + $"reg add "HKCR\EasyPrint" /f /ve  /d "EasyPrintProtocol"",
                   "/c" + $"reg add "HKCR\EasyPrint" /f /v "URL Protocol"  /d "",
                   "/c" + $"reg add "HKCR\EasyPrint\DefaultIcon" /f /ve  /d ""+path+"\EasyPrint.exe,1"",
                   "/c" + $"reg add "HKCR\EasyPrint\shell\open\command" /f /ve  /d "\""+path+"\EasyPrint.exe\"  \"%1\"""
                };
                foreach (var command in cmds)
                {
                    Process p = new Process
                    {
                        StartInfo =
                        {
                            FileName = "cmd.exe",
                            Arguments = command,
                            UseShellExecute = false,
                            RedirectStandardInput = true,
                            RedirectStandardOutput = true,
                            CreateNoWindow = true
                        }
                    };
                    p.Start();
                    p.StandardInput.WriteLine("exit");
                    p.Close();
                }

    将会在系统中注册一个协议,此协议名称根据注册表的key决定,此处为EasyPrint,大小写无关

    调用时即使用  EasyPrint://par1&par2

    具体参数传递方式根据需要自行处理即可,系统会将完整请求自动转发给注册的程序

  • 相关阅读:
    克隆对象和对象的继承
    面向对象的目的和方式
    补充+复习
    正则的一些细节和拖拽时遇到的问题及解决方法
    js高级正则解析
    正则理解
    如何判断this指向?
    动画以及运动
    元素节点
    null和undefined的区别
  • 原文地址:https://www.cnblogs.com/ives/p/10918409.html
Copyright © 2011-2022 走看看