V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ilolita
V2EX  ›  问与答

如何禁止 electron 构建的软件运行?

  •  
  •   ilolita · 2019-12-08 09:19:58 +08:00 via iPhone · 11622 次点击
    这是一个创建于 1594 天前的主题,其中的信息可能已经有所发展或是发生改变。

    话说怎么才能禁止 electron 构建的软件运行啊? 有做过 electron 开发的大佬说一下呗,需要禁用哪些核心文件才可以彻底禁止运行啊?

    比如女朋友不懂电脑,莫名其妙装了 electron 构建的软件,用起来不够流畅,所以想让这种软件直接运行不了,甚至直接无法安装。

    也许有人不明白,我为什么要这么做? 主要还是因为使用 electron 构建的软件,99%的软件使用起来都很难受。 不够流畅,软件体积太大,内存占用用太多,界面响应太慢。 以上都是我这个普通用户看到的缺点,除了好看,给用户带来的都是拖累。

    当然微软的 VS Code 是那 1%

    以上不解释撕逼

    第 1 条附言  ·  2019-12-09 03:24:16 +08:00

    为了避免争议,补充并删改了一些内容,去除了一些模糊的描述,以底部的正文为准吧。


    **话说怎么才能禁止 electron 构建的软件运行啊? **


    有做过 electron 开发的大佬说一下呗,需要禁用哪些 electron 的运行库文件才可以彻底禁止运行啊?

    举个栗子:

    比如女朋友或者身边的朋友不懂电脑,他们无法分辨软件的质量,不知情的情况下安装了 electron 构建的软件,用起来不够流畅,体验很差,找你吐槽软件难用,想让你解决下这个问题。

    那么,我想到的解决办法是有没有什么办法可以在无人干涉的情况下自动阻止运行库的运行或者阻止创建来做杜绝这种软件的运行,甚至是安装?比如杀软的 HIPS ? 毕竟我自己也讨厌 electron 构建的软件,体验太差。 当然微软的 VS Code 是那 1% 里面为数不多的正面案例,但是其余的 99% 做的很烂不是么?


    楼下不少人让我换电脑,我觉得这不是电脑的问题,是 electron 自身的问题,毕竟和MFC/WPF的性能差距肉眼可见啊。

    CPU:E3-1265L V3

    内存:16GB

    显卡:GTX 970

    显示器:4K


    那些让我换女朋友的同学够了哈😂

    以上不接受撕逼,我只是提出问题想寻求解决这个问题的方法的,不用想着让我换电脑或者换女朋友了😂你们根本就不是来解决问题的,你们是来解决提出问题的人的。

    第 2 条附言  ·  2019-12-09 22:19:26 +08:00
    看完全篇回复,这已经成了撕逼帖了吧?
    通篇就只有几个是针对技术回复且有意义的。
    其他人全是来针对楼主本人来的
    没有几个人愿意承认 electron 自身就是有性能问题
    这帖子已经没有存在的意义了,撕逼者居多。
    143 条回复    2019-12-13 21:17:32 +08:00
    1  2  
    Pastsong
        101
    Pastsong  
       2019-12-09 08:30:05 +08:00   ❤️ 2
    @hakono Electron 对于降低开发成本是非常显著的,想象一下用原生技术做一个 Slack 的桌面客户端并且保持所有平台和 Web 端功能同步需要花费多大的成本,不同平台之间体验不一致也是原生开发的问题之一,而性能问题大部分情况下是排在有没有和能不能用之后的。我想说明的是,这么多 app 使用 Electron 来开发是一个市场权衡成本后的技术选型而不是程序员偷懒,程序员的观点并没有决定性作用。
    VeChar
        102
    VeChar  
       2019-12-09 08:45:33 +08:00
    因噎废食?
    wangxiaoaer
        103
    wangxiaoaer  
       2019-12-09 08:50:37 +08:00
    一大堆冷嘲热讽的真是够了,Electron 做的大部分应用就是中看不中用有什么不敢承认的?用起来的确感觉有延迟,别拿 vscode 等极个别作为例子,你先看看自己有没有人家的实力。

    一个应用动不动几百兆,别说现在 100M 带宽怎么滴,总是么有秒下来的舒服。
    ilolita
        104
    ilolita  
    OP
       2019-12-09 09:00:11 +08:00 via iPhone
    @VeChar 因为难吃
    damngood
        105
    damngood  
       2019-12-09 09:04:17 +08:00
    绝大部分 Electron App 有明显的可感知的 UI 迟钝感, 更别说资源占用了.

    否定 Electron App 并不是否定 Web 技术. 为什么不使用系统内置的 WebView 呢, 为什么不使用系统内置的 Javascript runtime 呢? 兼容性? 平时做基于浏览器的 App 不一样有兼容问题吗?
    ilolita
        106
    ilolita  
    OP
       2019-12-09 09:07:55 +08:00 via iPhone
    @damngood 哎,我说性能差,楼上的说感觉不到,要么就说我电脑差让我换电脑,我哭😭
    damngood
        107
    damngood  
       2019-12-09 09:20:58 +08:00
    @ilolita 明显感觉得的. 能不装的尽量不装.
    我的系统里大概只有 VS Code 这个 Electron App 了. 就算是 VS Code 也在打算用 Sublime Text 代替.

    大量的使用 Electron 真是对用户体验的漠视.

    个人开发者还能说得过去 ( 毕竟资源受限, 自己的技术栈受限, 但就算是基于 Web 技术也不一定非得 Electron ), 公司行为的话我真觉得有点太不在意用户感受了.
    VictorJing94
        108
    VictorJing94  
       2019-12-09 09:26:19 +08:00
    找不到共有特征就先按单个软件去禁止啊
    ilolita
        109
    ilolita  
    OP
       2019-12-09 09:37:30 +08:00 via iPhone
    @VictorJing94 从文件上看确实没有找到共有的文件,所以想用 HIPS 功能来解决这个问题看起来难以实现啊。
    MakHoCheung
        110
    MakHoCheung  
       2019-12-09 09:37:59 +08:00
    之前沉迷过 electron 一段时间,但是发现一个应用一个 Chromium 和 nodejs 就 不怎么爽,不过目前大部门的 electron 应用应该都是技术类的吧,日常软件据我所知就只有迅雷,你女朋友怎么经常装 electron 应用呢
    ilolita
        111
    ilolita  
    OP
       2019-12-09 09:40:40 +08:00 via iPhone
    @MakHoCheung 她装了个下载器🤣🤣🤣FDM
    damngood
        112
    damngood  
       2019-12-09 09:44:10 +08:00
    @MakHoCheung 看了下, Mac 下的迅雷不是基于 Electron, 你说的是 Windows 吗
    hakono
        113
    hakono  
       2019-12-09 09:52:27 +08:00 via iPhone
    @Pastsong 所以说半天不就是通过牺牲用户体验换取开发速度和便捷吗。降低成本没问题,但 electron 这东西牺牲了太多客户体验了,你说的市场决定,指的是开发厂商和程序员决定的市场,而你根本没奖普通用户考虑到这这市场中
    cmdOptionKana
        114
    cmdOptionKana  
       2019-12-09 09:59:22 +08:00   ❤️ 1
    说程序员偷懒太奇怪了,不管采用什么技术栈,工作都是做不完的,反正每天正常上班正常写代码,公司嫌慢就加人手或者换技术栈,程序员本身并不着急啊。

    就算“偷懒”完成了一项任务,接下来还有无穷无尽的任务。能否偷懒取决于公司的管理制度,管严格了就无法偷懒,管不严格就算要求使用汇编语言,也照样偷懒啊。偷懒与技术栈有什么关系?
    ilolita
        115
    ilolita  
    OP
       2019-12-09 10:02:59 +08:00 via iPhone
    @cmdOptionKana 大哥我错了。
    Pastsong
        116
    Pastsong  
       2019-12-09 10:05:35 +08:00
    @hakono 你可以搞一个 campaign 让大家都抵制 Electron 应用号召给这些 app 打差评发工单,这些开发商说不定就改了,毕竟都是市场决定。
    ilolita
        117
    ilolita  
    OP
       2019-12-09 10:06:50 +08:00 via iPhone
    @Pastsong 还是老哥狠。
    cmdOptionKana
        118
    cmdOptionKana  
       2019-12-09 10:10:23 +08:00
    @ilolita 哈哈哈哈,你也没有错。我不关心是非对错,只是觉得逻辑上有问题,我喜欢玩逻辑。
    ilolita
        119
    ilolita  
    OP
       2019-12-09 10:11:58 +08:00 via iPhone
    @cmdOptionKana 哈哈哈哈哈哈😂
    murmur
        120
    murmur  
       2019-12-09 10:15:36 +08:00
    @easonHHH 微信的桌面端的却垃圾,不是性能,是基本功能都不完备,昨天看新闻微信办公出事了,希望好好杀一下微信办公的歪风
    Caballarii
        121
    Caballarii  
       2019-12-09 11:07:08 +08:00
    卡又不一定是 CPU 内存,如果电脑不是 ssd,那就应该是硬盘卡了
    MakHoCheung
        122
    MakHoCheung  
       2019-12-09 11:18:17 +08:00
    @damngood windows 的迅雷 X 开始就是 electron,Mac 好像还不是
    shadeofgod
        123
    shadeofgod  
       2019-12-09 11:42:51 +08:00
    > 比如女朋友或者身边的朋友不懂电脑,他们无法分辨软件的质量,不知情的情况下安装了 electron 构建的软件,用起来不够流畅,体验很差,找你吐槽软件难用,想让你解决下这个问题。

    这例子里你禁了 electron 开发的应用她不是一样会找你吐槽软件安装了没法用,让你解决吗?

    这问题其实和 electron 本身好坏都没啥关系。。大部分人喷的是楼主这个莫名其妙的思路,直接帮小白禁了引起的问题更多。。
    ipwx
        124
    ipwx  
       2019-12-09 12:02:09 +08:00 via Android   ❤️ 2
    和那个不让女朋有买苹果的家伙一样,这根本不是 electron 卡不卡的问题,而是你是否尊重女朋友作为独立个体的选择权的问题。这边建议楼主女朋友分手。
    aWangami
        125
    aWangami  
       2019-12-09 12:22:54 +08:00 via Android
    楼主思路新奇
    emeab
        126
    emeab  
       2019-12-09 12:29:20 +08:00
    可以换个思路 解决不了问题就把提出问题的人解决了
    loginv2
        127
    loginv2  
       2019-12-09 12:39:00 +08:00
    根据窗口类的名字 Chrome\_RenderWidgetHostHWND 来定位吧,或者根据软件安装目录里面的文件定位,一般都会有 node.dll 和 asar 类型的文件 用安全软件禁止一切盘符下的 asar 类型文件的读取,或许就可以做到了
    loginv2
        128
    loginv2  
       2019-12-09 12:41:14 +08:00
    只不过这样并不完美,把软件打包成单文件的工具可以绕过这些规则
    azh7138m
        129
    azh7138m  
       2019-12-09 12:48:22 +08:00 via Android   ❤️ 1
    > 女朋友装了个 FDM 而已
    你买个 IDM 送她啊
    coderluan
        130
    coderluan  
       2019-12-09 15:17:11 +08:00   ❤️ 1
    比如女朋友或者身边的朋友不懂电脑,他们无法分辨软件的质量,不知情的情况下安装了 electron 构建的软件,用起来不够流畅,体验很差,找你吐槽软件难用,想让你解决下这个问题。

    如果你想到的办法是禁止 electron 运行,按你的思路分手找个懂电脑的女朋友才是治本,否则她将来吐槽别的软件难用,你还得接着想办法。
    ysc3839
        131
    ysc3839  
       2019-12-09 15:38:19 +08:00 via Android
    WPF 性能能和 Chromium 比我没意见。MFC 我认为比不了,因为 MFC 基本都在使用 GDI 绘图,GDI 几乎没有硬件加速,而 Chromium 使用 DirectX 绘图,有硬件加速。
    ysc3839
        132
    ysc3839  
       2019-12-09 15:51:20 +08:00 via Android
    @damngood
    > 为什么不使用系统内置的 WebView 呢
    因为 Windows 下的“系统内置的 WebView”是 IE,你愿意去适配 IE 吗?更何况还有不同 IE 版本的问题,Win7 预装的是 IE8。
    Linux 下没有内置的 WebView。
    nnnToTnnn
        133
    nnnToTnnn  
       2019-12-09 16:38:38 +08:00
    我不知道楼主用的什么软件。

    先声明几点。第一点 electron 和 MFC/WPF 的性能差距不会很大。

    原因是 Chromium 具有硬件加速。 而 electron 的缺点是安装体积过大。


    至于你说的

    ```
    不够流畅,软件体积太大,内存占用用太多,界面响应太慢。
    ```

    electron 执行不够流畅是不可能的,electron 是用 Chromium 进行渲染,如果执行不够流畅,那么市面上百分之 80 几的浏览器基本上访问 web 页面都会不流畅。


    你说的软件

    1. 内存占用用太多
    2. 不够流畅
    3. 软件体积太大
    4. 界面响应太慢

    只有所谓的软件体积太大是属于 electron 的问题,无论写什么程序都至少需要 32mb 以上,除了这个是 electron 问题以外。

    什么界面响应太慢,不够流畅,内存占用用太多,这个和软件本身的作者有关系,就算作者换了任何一个语言,任何一个框架都存在这个问题!!!!!!!


    其次微软的 vscode 就百分之百足够能证明 electron 本身可以做到很优秀。

    其次,你的结论结果的感觉是,你看世界上所有人死的时候都是因为呼吸了空气。没有呼吸空气才死的人基本上是百分之零。 所以不呼吸等于长生。

    软件的好坏和使用框架构建出来没有必然的原因。

    让我想起了一起一个很经典的例子:

    易语言 = 病毒
    wunonglin
        134
    wunonglin  
       2019-12-09 16:47:54 +08:00
    @nnnToTnnn #133 不是=,是===
    nnnToTnnn
        135
    nnnToTnnn  
       2019-12-09 16:48:21 +08:00
    @damngood #105 楼

    你可能对渲染引擎不是很了解。

    系统可以使用自带的浏览器引擎来进行渲染,没有问题,但是往往系统自带的浏览器的渲染引擎效果都很差。很简单的例子 IE8 和 IE11 的性能差距。 这还仅仅是同一款渲染引擎.

    所以需要把渲染引擎打包到应用程序中,所以 electron 体积才会变大。

    还有你说的

    ```
    兼容性? 平时做基于浏览器的 App 不一样有兼容问题吗?
    ```
    就是应为大家使用了不同的渲染引擎,也就是自己电脑上默认的浏览器,所以才存在了兼容性问题。如果所有的人都采用最新 electron 来进行打开 webapp,那么 webapp 就不存在任何所谓的兼容性问题了!!!


    electron
    react native
    等等所谓的 h5 开发,或者跨设备例如 安卓 /IOS 都是采用这种技术进行开发的。
    nnnToTnnn
        136
    nnnToTnnn  
       2019-12-09 16:49:39 +08:00
    @wunonglin #134 真实,真实 [doge]
    damngood
        137
    damngood  
       2019-12-09 18:52:45 +08:00
    @nnnToTnnn 所以每个应用内置 一个渲染引擎和一个执行引擎? 所以说是粗暴的, 不顾用户体验的.
    ysc3839
        138
    ysc3839  
       2019-12-09 19:10:57 +08:00
    @damngood 是这样的,Windows 和 macOS 很多应用是自带 dll/dylib 的,只有那些有包管理的系统才好实现不同程序共用运行库。
    jason94
        139
    jason94  
       2019-12-09 20:26:29 +08:00
    这锅 electron 不背,用哪些软件发出来一起测测🐶
    nnnToTnnn
        140
    nnnToTnnn  
       2019-12-10 08:47:29 +08:00
    @damngood 你家 google 浏览器和火狐浏览器不就是自带的渲染引擎吗? 这叫啥不顾用户体验,这不应该是常识么?

    如果你说的 i 这是粗暴的请你提出好的解决方案?

    使用系统的自带的渲染引擎和执行引擎,你让各个系统厂商去配合你做这个事情。 如果没有这个能力,你谈啥粗暴!!

    使用 Chromium 渲染,主要是解决不同系统的中渲染引擎的差异,什么叫做不顾用户体验,我都惊呆了

    You Can You Up, No Can No BB
    nnnToTnnn
        141
    nnnToTnnn  
       2019-12-10 08:50:59 +08:00
    @damngood 不是我喷你,估计你是 C#的 C/S 开发工程师,不了解 B/S 开发,只是在自己的 Window 环境下玩,并且不会考虑其他系统。
    Balthild
        142
    Balthild  
       2019-12-13 19:45:02 +08:00
    @damngood 因为 Electron 要暴露 nodejs api 给 javascript runtime,单纯用 Webview 是很难做到的
    damngood
        143
    damngood  
       2019-12-13 21:17:32 +08:00 via iPhone
    @Balthild 做个简单的 bridge 就可以了
    我之前的方案就是提供一个 native 接口供 web 调用
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5613 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 01:46 · PVG 09:46 · LAX 18:46 · JFK 21:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.