js通过注册表找到本地软件安装路径并且执行

场景:用js执行本地的安装软件,如果不存在就执行安装

操作步骤:

1.前台js代码

<script type="text/javascript">
function exec () {
var command;
var shell = new ActiveXObject("WScript.Shell");
try
{
command = shell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Directory\\shell\\RadiAnt\\Icon");//从注册表获得软件安装路径
}
catch(e)
{
if(window.confirm("你可能还没有安装Radiant,请下载安装")){
//alert("确定");
window.location.href="jspView/radiantsetup32312921.exe";
return false;
}else{
return false;
}
}//执行exe程序
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>

执行exec()就能调用本地软件了

以下是需要注意的几点

1.该程序只能在IE上执行

2.注册表路径的查找步骤

右键-复制项名称

3.想要执行改程序必须更改本地的浏览器安全级别

否则报错:ERROR:Automation 服务器不能创建对象

具体参考百度文档:http://jingyan.baidu.com/article/ae97a646d43dc8bbfd461d0b.html

js通过注册表找到本地软件安装路径并且执行的相关教程结束。

相关推荐:

为什么Python脚本在任务计划程序中由于路径问题无法运行?

根本原因是Windows任务计划程序默认工作目录为C:\Windows\System32,导致相对路径失效;需强制切换工作目录、使用绝对路径、配置完整Python解释器路径、显式添加环境变量、重定向日志并启用历史记录。 任务计划程序中Python脚本找不到模块或文件 根本原因不是Python本身出错...

如何通过Python sys.path动态添加模块搜索路径以解决导入错误?

直接修改sys.path不推荐长期使用,仅适用于临时调试等场景;其不生效主因是模块已缓存于sys.modules,须在首次import前操作,且路径顺序、有效性及环境隔离需严格注意。 直接改sys.path能解决导入问题,但不推荐作为长期方案;它适合临时调试、打包后路径未知或嵌入式场景,用错位置或顺...

为什么Python的二进制分发版比源代码安装快得多?

wheel安装快是因为跳过编译环节,直接解压预编译的二进制模块到site-packages;编译环节需调用gcc等工具构建C扩展,耗时且依赖本地开发环境。 wheel文件安装快,是因为它跳过了编译环节——你拿到的就是已经编译好的字节码或平台原生二进制模块,直接解压、校验、复制到site-packag...

动态执行代码时正确访问类实例:在 exec 中安全使用 self

本文详解如何在Python类方法中通过exec动态定义函数,并使其能安全访问当前实例(self)的属性与方法,适用于调试交互场景(如pdb会话)及用户驱动的动态函数生成需求。 本文详解如何在python类方法中通过`exec`动态定义函数,并使其能安全访问当前实例(`self`)的属性与方法,适用于...