【问题标题】:Load unpacked Chrome extension programmatically以编程方式加载解压的 Chrome 扩展程序
【发布时间】:2019-01-18 10:22:50
【问题描述】:

是否可以从命令行加载和卸载已解压的 Chrome 扩展程序?

【问题讨论】:

    标签: shell google-chrome command-line google-chrome-extension


    【解决方案1】:

    是的,虽然只是暂时的 *:

    chromium --load-extension=path/to/extension
    

    如果要加载多个扩展,只需用逗号分隔路径即可:

    chromium --load-extension=path/to/extension,path/to/another/extension
    

    chromium 替换为 chrome.exe(或用于启动 Chrome/Chromium 浏览器的任何内容)。

    * 当您关闭浏览器并再次启动它时没有命令行参数,那么该扩展将从已安装的扩展列表中消失。

    【讨论】:

    • 我应该澄清我的问题,我想在 chrome 运行时这样做。
    • chrome --load-extension=path/to/extension 不工作。有任何想法吗?我在窗户上
    • @RuwankaMadhushan 试试` instead of /`。
    • @RobW 你说的`insted of/`是什么意思
    • @RuwankaMadhushan 反斜杠而不是正斜杠,即--load-extension=path\to\extension
    【解决方案2】:

    可以使用--load-and-launch-app=path/to/app进行安装

    它适用于应用程序和扩展程序。 (我在 chrome 版本 35.0.1916.153 m 上测试过)

    我不确定是否有其他卸载命令。我发现this list of chromium commands 非常有用。

    【讨论】:

    • 此标志不会永久安装应用程序或扩展程序。删除标志后,扩展程序/应用程序也将消失。 --load-and-launch-app--load-extension 都应该是 work as expected。我认为当您尝试使用 --load-extension 标志时,您至少打开了一个 Chrome 窗口。这些标志只有在 Chrome 完全关闭时才起作用。
    • 你确定吗?我只是关闭所有 chrome 窗口并运行该命令,然后加载扩展。然后我关闭 chrome 并再次启动它。扩展在那里。无论如何我都不知道原因。
    • 打开任务管理器并检查是否有任何打开的 chrome.exe 进程。
    • 你告诉我之后我做了,你有 chrome.exe 进程,这是原因吗?我杀死所有进程并再次启动 chrome,仍然从上面的命令安装了扩展。
    • 杀死所有进程,并在没有这些命令行标志的情况下启动 chrome.exe。然后将不会安装扩展程序/应用程序。如果已安装,那么您可能已经在开发者模式下通过chrome://extensions 处的“加载解压扩展”按钮将扩展加载为解压扩展。
    【解决方案3】:

    离线安装/使用 Chrome 扩展程序的 3 种方式:


    方法A:拖放(简单)

    • 将 ABP.crx 拖放到:chrome://extensions 以安装

    优点:安装网络和非 Westore 扩展程序

    缺点:Google 会快速永久禁用非网上商店扩展程序


    方法B:加载解压扩展/7zip到解压/ABP为例

    • 解压缩 ABP.crx: C:\ABP
    • 加载 1:快捷方式:“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”--load-extension="C:\ABP"
    • 加载 2:“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” --load-extension="C:\ABP,C:\IEtab"

    优点:永久启用非网店扩展,只要您使用自定义快捷方式

    缺点:扩展只能通过自定义快捷方式加载

    ~~~~~~~~~~~~~~~ 3个提取扩展错误的修复:~~~~~~~~~~~~~~~

    • 无法加载:创建包含清单文件的文件夹的快捷方式,例如: akkmfdhlogbapbcgojknhfgppcionopk\5.4.7_0

    • 元数据:扩展\删除_元数据文件夹

    • 禁用:使用记事本打开 manifest.json 并定位:

    "name": "MSG_appName",

    “offline_enabled”:真,

    创建:“offline_enabled”:如果不存在,则为真


    方法 C: WinRar SFX(大量安装本地/非本地配置文件应用程序)

    Chrome 将所有插件提取到: %LocalAppData%\Google\User Data\Default\Extensions

    按网店 ID 列出的扩展程序列表。示例:ABP=cfhdojbkjhnklbpkdaibdccddilifddb

    ABP 需要 3 个文件:某些扩展可能只需要 2 个

    • 安装所有需要的插件,删除所有不需要的。退出 Chrome。
    • 备份:%LocalAppData%\Google 到:C:\Backup\Google
    • 复制:%LocalAppData%\Google\Chrome\User Data\Default\Extensions 到:C:\Google\Chrome\User Data\Default\Extensions
    • 复制:%LocalAppData%\Google\Chrome\User Data\Default\secure 首选项到:C:\Google\Chrome\User Data\Default\secure 首选项
    • 复制:%LocalAppData%\Google\Chrome\User Data\Default\Local Extension Settings 到:C:\Google\Chrome\User Data\Default\Local Extension Settings
    • 创建 WinRar SFX:提取 C:\Google 到:%LocalAppData%\Google

    (ABP 存储设置:%LocalAppData%\Google\User Data\Default\Local Extension Settings)

    优点:从本地/非本地 PC 大规模安装网络和非网络商店应用程序

    缺点:Google 会快速永久禁用非网上商店扩展程序

    当 SFX 导入安全首选项文件时,它会将旧的扩展/设置替换为导入的

    恢复 Chrome 备份:

    • 退出 Chrome 并删除 %LocalAppData%\Google\Chrome
    • 将 C:\Backup\Google 复制到:%LocalAppData%\Google
    • 启动 Chrome

    【讨论】:

      【解决方案4】:

      尝试从任务管理器中杀死所有现有的 Chrome 实例:TASKKILL /IM chrome.exe /F 然后chrome.exe --load-extension=path/to/extension 应该可以工作

      这个控制台应用程序的工作 C# 代码可以提供帮助

      class Program
          {
              static void Main(string[] args)
              {
                  Process cmd = new Process();
      
                  cmd.StartInfo.FileName = "cmd.exe";
                  cmd.StartInfo.RedirectStandardInput = true;
                  cmd.StartInfo.RedirectStandardOutput = true;
                  cmd.StartInfo.CreateNoWindow = true;
                  cmd.StartInfo.UseShellExecute = false;
      
                  cmd.Start();
                  //kill all chrome instances
                  cmd.StandardInput.WriteLine("TASKKILL /IM chrome.exe /F");
                  //path to chrome.exe
                  cmd.StandardInput.WriteLine("cd C:\\Program Files (x86)\\Google\\Chrome\\Application");
                  //load extension
                  cmd.StandardInput.WriteLine("chrome.exe --load-extension={path-to-extension}");
      
                  cmd.StandardInput.Flush();
                  cmd.StandardInput.Close();
                  Console.WriteLine(cmd.StandardOutput.ReadToEnd());
      
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-30
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多