首页 > 编程语言 >网页通过注册表调用本地程序

网页通过注册表调用本地程序

时间:2022-08-25 09:00:35浏览次数:48  
标签:PS 调用 网页 RegistryKey PrintShipLabel 注册表 exePath PSWebPrint

要调用的本地程序地址

E:\\PSWebPrint.exe

编写txt文件,内容如下:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\PS.PrintShipLabel]

"URL Protocol"="E:\\PSWebPrint.exe"

@="PS.PrintShipLabel"

[HKEY_CLASSES_ROOT\PS.PrintShipLabel\DefaultIcon]

@="E:\\A\\PSWebPrint\\PSWebPrint\\bin\\Debug\\PSWebPrint.exe,1"

[HKEY_CLASSES_ROOT\PS.PrintShipLabel\shell]

 

[HKEY_CLASSES_ROOT\PS.PrintShipLabel\shell\open]

 

[HKEY_CLASSES_ROOT\PS.PrintShipLabel\shell\open\command]

@="\"E:\\PSWebPrint.exe\" \"%1\""

 

注册表名称为PS.PrintShipLabel,将以上的内容保存到文本里面,另存为PS.PrintShipLabel.reg(名字随意,后缀为.reg即可),

其中最后的“ %1 ”表示应用程序接收参数。。。@表示默认值

 

 也可以编写用程序创建注册表 

 #region 创建注册表
        public void createRegistry()
        {
            string exePath = Application.ExecutablePath;//调用的程序地址
            PdfPrint.TryLoadNativeLibrary(System.Windows.Forms.Application.StartupPath);
            exePath = exePath.Replace("\\", "\\\\");

            RegistryKey hklm = Registry.ClassesRoot;
            RegistryKey key = hklm.CreateSubKey(@"PS.PrintShipLabel");
            key.SetValue("URL Protocol", exePath);

            RegistryKey key2 = key.CreateSubKey(@"DefaultIcon");
            key2.SetValue("", exePath);

            RegistryKey key3 = key.CreateSubKey(@"shell");
            RegistryKey key4 = key3.CreateSubKey(@"open");
            RegistryKey key5 = key4.CreateSubKey(@"command");
            key5.SetValue("", exePath + " %1");
            hklm.Close();
            key.Close();
        }
        #endregion

前端js调用

 function print() {
            window.location.href = 'PS.PrintShipLabel://12331233;
        }
PS.PrintShipLabel为注册表名称
PS.PrintShipLabel://后为要传递的参数

后台接收处理注册表传递的参数

//获取参数
string parameter = "";
if (args.Length > 0)
{
  parameter = Regex.Match(args[0], @"(?<=://).+?(?=:|/|\Z)").Value;
}

 

标签:PS,调用,网页,RegistryKey,PrintShipLabel,注册表,exePath,PSWebPrint
From: https://www.cnblogs.com/8999zzz/p/16623028.html

相关文章

  • 网页编辑器粘贴图片自动上传到服务器(Java版)
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘......
  • 将静态网页部署在云服务器
    环境我的云服务器操作系统是CentOSLinuxrelease7.6,当然云服务器可以自行更换操作系统我在阿里云的云服务器的实例中进行远程连接,准备安装httpdrpm-qa|grephttpd......
  • mfc调用ocx控件
    项目中,有时候三方公司提供ocx控件调用,下面介绍如何一步步调用。1)在任意目录存放三方ocx并进行注册和反注册测试,先保证三方ocx能注册成功reg.bat:regsvr32/uC:\xxx_......
  • 纯CSS实现禁止网页文本被选中
    CSS 属性 user-select 控制用户能否选中文本。利用这个css属性的特点,我们可以实现纯css禁止网页文本被选中.首先我们来看一下css user-select属性语法及取值。 css......
  • gitlab忘记网页端密码
    1、使用root账户登录服务器2、切换用户为gitsu-git3、进入gitlab控制台gitlab-railsconsoleproduction如报错如下:ERROR:"railsconsole"wascalledwithar......
  • vue3 在setup 外部调用 useStore() 为 undefined 解决
    场景:在router/index.ts中想要获取storeimport{useStore}from'@/vuex';conststore=useStore()console.log('appstore',store)//undefined 在App.vue,或者......
  • redis网页访问
         目前有许多应用都是布署在云端服务器上,阿里云,华为云,电信云等,mysql,redis等数据库服务器通常是没有外网的,这是基于安全考虑,也是为了节约成本,因为服务器的流量......
  • 网页UI设计软件:XD
    AdobeXD是一款用于设计Web和移动应用程序用户体验以及为其构建原型的基于矢量的工具。通过一款功能强大的工具,轻松地在线框、视觉设计、交互设计、原型制作、预览和共享......
  • 函数的定义和调用
    函数的定义python中定义一个函数使用def(define的缩写)关键字,语法格式如下:def<函数名>([参数列表]):<函数体>return<返回值列表>def与函数名中间又一个空......
  • c++和python混合编程,调用了CTP的附加库 (windows)(应该是全网第一篇)
    这是一个连接券商的代码,simnow提供的包,windows版,linux的话,下一篇文章介绍听起来就很复杂,所以需要大家有点功底,不懂的东西,多多百度,因为很多细节,我不可能还教怎么使用visual......