【问题标题】:How to make Chrome always launch with remote-debugging-port flag如何使 Chrome 始终使用远程调试端口标志启动
【发布时间】:2019-01-04 21:26:12
【问题描述】:

我知道我可以通过以下方式启动 chrome 在 9222 端口打开远程调试端口 -

chrome.exe --remote-debugging-port=9222

但我想设置 Chrome,这样无论何时它由任何其他应用程序启动,它总是在启用远程调试选项的情况下打开。自定义配置文件是否有效?

我想实现它,因为有一个桌面应用程序会在单击其按钮时启动 chrome。我想控制那个 chrome 会话。

【问题讨论】:

  • 虽然这实际上不是 Stackoverflow 的问题,但您可以在 Windows 上创建一个桌面快捷方式,然后转到快捷方式/启动器的属性(右键单击桌面快捷方式并单击属性)并编辑命令。然后可以使用该快捷方式始终打开带有标志的 chrome。或者,您可以在桌面应用程序上连接一个按钮处理程序以运行以调试模式启动的命令。
  • 快捷方式不起作用,因为我不会启动 chrome。有一个桌面应用程序将在单击其按钮时启动带有登录页面的 chrome。我想控制那个 chrome 会话。此外,我无法连接按钮处理程序,因为我不是该应用程序的开发人员,也没有源代码。

标签: google-chrome chrome-remote-debugging


【解决方案1】:

您可以直接在程序属性中添加标志,而不是编辑注册表,方法是右键单击 Chrome 图标并添加...

--remote-debugging-port=9222 -- "%1" 

...到目标字段的末尾。

【讨论】:

  • "%1" 有什么作用?没有它似乎也能工作。
  • @tchan %1 如果您将文件放在快捷方式或其他东西上,则在那里,以便快捷方式知道它指向的文件。在此处阅读更多信息:computerhope.com/jargon/num/percent1.htm
【解决方案2】:

我找到了解决问题陈述的方法。我将其发布为答案,因为它可以帮助其他有类似问题陈述的人。

如果您使用的是 Windows,请转到注册表编辑器并搜索此命令

Computer\HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command

用以下内容修改密钥 -

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 -- "%1"

如果你想玩 Chrome,如果你总是想以隐身模式启动 Chrome,请输入 --incognito。

注意:请在使用前备份您的注册表。

【讨论】:

  • 不过,对于mac,我还在寻找解决方案。
  • 不适合我。你能帮帮我吗?
【解决方案3】:

对于 mac,我为我制作了一个简单的应用程序,它使用 --remote-debugging-port 启动 chrome。 Mathias Bynens 有一个wonderful post on how to do this(这是我想到的)。他甚至包括一个(分叉的)script,它可以为您完成大部分工作,但基础非常简单。

  1. 在您的应用程序文件夹中创建一个具有以下结构的目录<new app name>/Contents/MacOS

    mkdir -p /Applications/Chrome\ Debugger.app/Contents/MacOS
    
  2. 创建您的脚本文件并使其可执行(其名称需要与顶部文件夹名称匹配):

    cd /Applications/Chrome\ Debugger.app/Contents/MacOS
    touch Chrome\ Debugger
    sudo chmod +x Chrome\ Debugger
    
  3. 使用您选择的编辑器编辑新文件(您的 chrome 路径可能不同):

    #!/usr/bin/env bash
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222&
    

就是这样。如果您想更容易找到,您可以添加自定义图标(复制新图标 > 右键单击​​新应用 > 获取信息 > 单击左上角的当前图标 > 将新图标粘贴到当前图标上),但是没有它,应用程序将正常工作。

【讨论】:

  • 轻微调整:mkdir -p /Applications/Chrome\ Debugger.app/Contents/MacOS 感谢您的图标!
  • 当我尝试这个时,它“在现有的浏览器会话中打开”并且我无法访问调试器正在侦听的端口。
  • 您已有一个浏览器会话。这不会创建一个新的 Chrome 实例,它只是启动带有标志的 Chrome。如果 Chrome 已经在运行,Mac 只会重复使用它。如果你想要这个标志并且 Chrome 已经在运行,你必须在使用它之前杀死 Chrome。
  • 始终启用远程调试有哪些安全隐患?
  • 如果您有一个现有的浏览器会话并运行它,MacOS 将只是重复使用它。使标志起作用的一种方法是在运行脚本之前关闭所有 chrome 实例。但是,IMO 更好的方法是添加自定义 user-data-dir 标志。示例/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=path/to/custom/folder&
【解决方案4】:

我还不能添加 cmets,但是 David Mann 的答案对于 MacOS 来说已经过时了。

谢天谢地,只需要稍作改动;将 bash shebang 添加到 Chrome 调试器脚本中。

#!/bin/bash
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222&

此更新适用于 mac 用户,可在此处找到: Enable remote debugging on Chrome by default on mac?

Nat Khun 还特意制作了一个 .dmg 文件,以便为 mac 用户提供“正常”安装程序。他的回购可以在这里找到: https://github.com/natkuhn/Chrome-debug/

一定要给他一颗星。我做到了!

【讨论】:

    【解决方案5】:

    我正在使用 Dave Shepard 的解决方案 使用 Automator 创建自定义 Chrome Debug App:Chrome Debugging in VSCode

    我在这里添加必要的步骤:

    • 打开自动机
    • 在提示您要进行哪种自动化时选择应用程序
    • 从操作列表中查找并选择运行 Shell 脚本
    • 输入您的 shell 命令以启动 Chrome,并在字段中使用以下标志:/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
    • 使用方便的名称将您的自动化保存在某个位置,以便您参考(例如 Google Chrome 调试模式)

    就是这样!只需直接运行自动化而不是 Chrome。如前所述,您将在 Dock 中看到两个图标,因为自动化应用程序不是 Chrome。我刚刚将我的自动化应用程序添加到我的扩展坞并删除了正常的 Chrome 条目。 如果您想要与普通 Chrome 快捷方式相同的图标:

    • 打开 Finder 并导航到 /Applications 在应用程序列表中找到 Google Chrome 并获取信息
    • 点击窗口左上角的 Chrome 小图标(不是底部的大图标),然后按 cmd+c 将其复制到剪贴板
    • 查找您的自动化应用程序并获取相关信息
    • 点击上方电梯中的 Automator 图标,然后按 cmd+v 粘贴复制的 Chrome 图标

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 2021-01-10
      • 2011-10-22
      • 2018-03-25
      • 2017-11-07
      • 2017-12-29
      • 2014-12-25
      • 2011-01-25
      相关资源
      最近更新 更多