• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Brimoire
V2EX  ›  程序员

关于浏览器在本地安装软件并打开的问题

  •  
  •   Brimoire · Oct 29, 2024 · 3112 views
    This topic created in 736 days ago, the information mentioned may be changed or developed.

    各位 op

    公司的一个需求,之前是本地装好了这个软件.exe ,浏览网址上有一个连接点击后会打开这个 exe

    现在老板想的是,点击这个链接后,浏览器去下载 exe 软件,然后去安装这个 exe 软件安装好之后打开,安装这个 exe 的时候还需要安装一些插件,浏览器能实现这个吗

    我能想到的就是早期点了一些少儿不宜的网站会给你下载一些奇奇怪怪的软件(好像是安装了的),类似病毒的东西,这个实现的逻辑是啥

    26 replies  •  2024-10-29 21:52:07 +08:00
    Configuration
    Configuration
    Oct 29, 2024
    1
    思路错了

    我这里是在 exe 里实现一个极简的 http server ,设置为开机启动(常驻右下角),然后从浏览器里发送 http 请求到 127.0.0.1 执行对应的指令
    Brimoire
    Brimoire
    OP
    Oct 29, 2024
    2
    @Configuration 意思就是电脑上先起一个类似系统服务的 http 服务 A ,浏览器的的原来打开 exe 的连接改成向 A 服务发请求,A 服务是一个本地的服务然后去执行下载安装命令以及打开 exe 服务 我的理解对吗
    mainjzb
    mainjzb
    Oct 29, 2024
    3
    > 浏览网址上有一个连接点击后会打开这个 exe

    如果软件已经安装,可以用 url 启动。例如 steam 启动游戏。或 磁力链接唤醒迅雷
    https://stackoverflow.com/questions/24455311/uri-scheme-launching

    > 安装这个 exe 软件安装好之后打开,安装这个 exe 的时候还需要安装一些插件
    这个可以实现,需要管理员运行安装包即可,如果是要给浏览器安装插件,浏览器会弹出来提示,点一下确认。例如 IDM 的浏览器插件
    Brimoire
    Brimoire
    OP
    Oct 29, 2024
    4
    @mainjzb 提前安装好软件,使用链接打开这个软件,这个已经做好了, 现在的需求是我们把 exe 安装包放在服务器上,原来的链接点击一下,浏览器开始下载,下载完毕后进行安装,安装成功了打开
    Configuration
    Configuration
    Oct 29, 2024
    5
    @mickerwx 就是在你们原来的 exe 软件里面,写一个 http server 进去,提前安装好,提前后台启动。然后就能实现从浏览器上点击打开这个 exe
    zzzyyysss
    zzzyyysss
    Oct 29, 2024❤️1
    6
    你想一想,我给你个链接,你打开后会下载一个 exe 还会安装运行。这怎么可能?
    早期那时候应该是 ie6 吧 ie6 有漏洞可以实现以上需求,现代浏览器不可能。
    zzzyyysss
    zzzyyysss
    Oct 29, 2024
    7
    打开特定协议的链接,调起本地应用是可以的。但是不能一键实现 下载 安装 运行。
    AV1
    AV1
    Oct 29, 2024
    8
    建议不要想那么复杂,都装 exe 了,都运行 exe 了,那么就把剩下的工作都转到 exe 里干。
    mainjzb
    mainjzb
    Oct 29, 2024
    9
    已经安装好了软件,管理员启动什么都能做。你说的这些感觉就像个更新。
    (为什么楼主要一直围绕着浏览器。看了一圈这里和浏览器没有任何关系,直接像 360 给你安装小鸟壁纸一样安装上不就得了。
    NoOneNoBody
    NoOneNoBody
    Oct 29, 2024
    10
    @DOLLOR #8
    你理解错了,OP 后面几句都是为了完成“公司的一个需求……”这句的,并不是点击前已经装了某个 exe
    Brimoire
    Brimoire
    OP
    Oct 29, 2024
    11
    @zzzyyysss 确实 我也觉得这个应该是实现不了的 浏览器控制操作系统 那太危险了
    Brimoire
    Brimoire
    OP
    Oct 29, 2024
    12
    @NoOneNoBody 对 安装软件通过浏览器打开这个软件 目前已经实现了 但是前提是需要安装好这个软件 新需求是安装这个软件的操作是不是也可以放到点击链接的时候实现
    mercury233
    mercury233
    Oct 29, 2024
    13
    @mickerwx #12
    那就是 ActiveX ,近 30 年前的技术,现在想用,相较于让用户下载文件手动打开,可能要麻烦十倍
    IvanLi127
    IvanLi127
    Oct 29, 2024
    14
    做不了,除非你们已经在目标机器上已经有一个软件作为后门。

    静默安装这可是大大的安全隐患呀。
    Brimoire
    Brimoire
    OP
    Oct 29, 2024
    16
    @thunderw 是吗 我瞅瞅
    bbchannails
    bbchannails
    Oct 29, 2024
    17
    卧槽你要写的代码多了去了, 模拟 ui
    cybort
    cybort
    Oct 29, 2024 via Android
    18
    可以是可以,不过是跑在沙盒里面的,我觉得类似一个 webapp ,不如直接用 web 实现。
    cybort
    cybort
    Oct 29, 2024 via Android
    19
    而且 ClickOnce 需要浏览器支持,不是随便哪个都能用的,可能绕一圈回来变成了给浏览器安装插件再点链接启动😂
    ibinary
    ibinary
    Oct 29, 2024
    20
    1.插件可以拉起本地 exe 参考 ndm idm 等
    2.我可以静默安装插件到浏览器(支持市面占有率浏览器)
    3.关于 2 是核心技术.简单提一嘴. 如果有帮助可以让用户去安装下然后尝试拉起 exe.
    cybort
    cybort
    Oct 29, 2024 via Android
    21
    @ibinary 他不只是拉起本地 exe 的问题,本地都没有 exe ,等于说插件要绕过浏览器安全机制给你安装一个 exe 。所以这个插件实现的应该是一个应用框架,然后在线获取配置和脚本才行。考虑到造轮子的必要性,不如参考下 chrome 应用去做。
    NGGTI
    NGGTI
    Oct 29, 2024
    22
    @mickerwx #12 如果已经安装过 exe 的话,倒是可以实现浏览器点击链接安装新的 exe 之类的。 没有的话倒是不可能做得到。(这属于漏洞了)
    ibinary
    ibinary
    Oct 29, 2024
    23
    @cybort #21 那确实.需要本地 exe 在. 如果单纯插件去下载顶多能跳转到目标网页.然后触发下载.用户自己去下载.
    插件去调用啥的.
    renmu
    renmu
    Oct 29, 2024 via Android
    24
    那浏览器安全团队可以全部毕业了
    chqome
    chqome
    Oct 29, 2024
    25
    应该实现不了,没必要搞这个,用户自己知道下载到哪里了,双击运行就行了
    jadeborner
    jadeborner
    Oct 29, 2024
    26
    需要写个注册表,URL Protocol 的地址填下载地址,自动跳转到自定义协议唤起这个下载的 exe 进行安装
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2774 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 13:44 · PVG 21:44 · LAX 05:44 · JFK 08:44
    ♥ Do have faith in what you're doing.