实践网页链接启动应用附带参数

2021-05-30 16:05

阅读:461

标签:uap   内容   http   两种   prot   pen   open   步骤   imp   

1.什么需求都是有的,你们懂得。我们就来实践下,兜住底,别让技术人的脸面掉地上了。

2.先从搜索开始,经过关键字切换,不断过滤,依据这边文章搞定大半 https://www.cnblogs.com/wang726zq/archive/2012/12/11/UrlProtocol.html

3.不同需求在于我这要求启动的应用是iexplore.exe,经过实践,因为协议完整没有处理的原因,会不停的关闭重启,今日开启关闭的不断循环中

4.解决问题从原因出发,需要启动应用后处理原来的网页链接内容。

5.步骤简述

  1)定义协议头,传递参数,部署测试页面

    

 p>
      a href=‘HkVideo://www.bing.com‘>查看视频监控a>
    p>
    button type=‘button‘ onclick=‘window.location.href = "HkVideo://http://www.baidu.com">查看视频监控button>

上面两种触发机制都可以。

  2)添加注册表文件,或者进入rededit手动添加到对应目录下 HKEY_CLASSES_ROOT\HkVideo\shell\open\command

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\HkVideo]
@="Open HkVideo"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\HkVideo\shell]

[HKEY_CLASSES_ROOT\HkVideo\shell\open]

[HKEY_CLASSES_ROOT\HkVideo\shell\open\command]
@="\"d:\\youApp.exe\" \"%1\""

  3)我是用golang build 了参数解析,执行命令的app,其他winform等形式都可以

package main

import (
    "bytes"
    "fmt"
    "log"
    "os"
    "os/exec"
    "strings"
)

const ShellToUse = "C:/Program Files/Internet Explorer/iexplore.exe"

func Shellout(command string) (error, string, string) {
    var stdout bytes.Buffer
    var stderr bytes.Buffer
    cmd := exec.Command(ShellToUse, command)
    cmd.Stdout = &stdout
    cmd.Stderr = &stderr
    err := cmd.Run()
    return err, stdout.String(), stderr.String()
}
func main() {
    fmt.Println(os.Args[1])
    url := os.Args[1]
    index := strings.Index(url, "//")
    url = url[index+2:]
    // flag.StringVar(&url, "url", "google.com", "url program")
    // flag.Parse()
    fmt.Println(url)
    err, out, errout := Shellout(url)
    if err != nil {
        log.Printf("error: %v\n", err)
    }
    fmt.Println("--- stdout ---")
    fmt.Println(out)
    fmt.Println("--- stderr ---")
    fmt.Println(errout)
}

  4)app放到注册表的目录

总结 : 从页面链接触发自定义协议“HkVideo//”,会在注册表中寻找,如果已经注册过,则调用openIE.exe 程序,app接收到参数后处理,并附带参数执行命令行。

  

实践网页链接启动应用附带参数

标签:uap   内容   http   两种   prot   pen   open   步骤   imp   

原文地址:https://www.cnblogs.com/wellma/p/14663427.html


评论


亲,登录后才可以留言!