创建注册表文件reg,并运行
里面的路径需要替换成实际exe的绝对路径
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\App]
@="URL:App Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\App\DefaultIcon]
@="E:\\App\\app.exe"
[HKEY_CLASSES_ROOT\App\shell]
[HKEY_CLASSES_ROOT\App\shell\open]
[HKEY_CLASSES_ROOT\App\shell\open\command]
@="\"E:\\App\\app.exe\" \"%V\""
运行成功后 win+r 输入 REGEDIT 打开注册表可以在下图中看见调用命令
Exe 文件是否支持传参 命令调用
exe必须支持传递参数调用,可以使用exe命令测试是否支持exe传参调用
cmd打开命令窗口
输入 E:\App\app.exe "admin,1234" 回车
如果可以唤醒exe 并且自动登录说明参数正确并且支持传参
前端vue调用
export default {name: 'topClass',data () {return {loading: false,userCode: 'admin',patientCardNo: '3000000'}},methods: {queryExamReport () {let userCode = "admin";let personelId = "2594098"this.getExe(userCode, personelId)},getExe (userCode, personelId) {let url = `App://${userCode},${personelId}`// window.location.href = url;window.open(url);}}
}
参数的问题
发现登录界面 的账号不是admin 而是 App://admin 说明参数需要特殊处理,不然相当于于执行了
E:\App\app.exe “App://admin,1234”
解决思路
- url调用bat脚本,bat脚本使用dos命令将参数截取成正确的参数再去调用exe
@echo off
echo %~1%
echo %~2%set p1=%~1%
echo %p1%set p1=%p1:~7%
echo %p1%start "notepad.exe" %p1%
- 写一个exe将参数截取成正确的再去调用exe
- exe提供方内部将参数特殊处理
效果图