【问题标题】:Is it possible to modify custom protocol argument on execution?是否可以在执行时修改自定义协议参数?
【发布时间】:2023-04-09 01:39:01
【问题描述】:

我需要用 FileZilla 打开一个 ftp url。为了防止浏览器自行打开链接,通过 Windows 注册表定义了自定义协议 fz-ftp://

[HKEY_CLASSES_ROOT\fz-ftp\shell\open\command]
@="\"C:\\FileZilla\\FileZillaPortable.exe\" \"%1\""

但是,由于 FileZilla 不理解 fz-ftp://,我需要一种方法来删除 Registy 条目中传递给 FileZilla 的参数“%1”中的“fz-”子字符串。 不允许使用第三方工具,只允许使用 FileZilla、干净的浏览器和 Windows 标准软件。

问题是:

  1. 是否至少可以修改自定义协议注册表定义中的参数?
  2. 是否有使用 PowerShell 的解决方法?
  3. 欢迎在 FileZilla 中从网页打开 ftp 链接的替代方法。

【问题讨论】:

  • 简短回答:不。长答案:您需要编写一个执行此操作的脚本,然后使用修改后的参数调用 FileZilla,并将“打开”命令更改为该脚本。这是相当微不足道的,即使是批量。
  • 有关此类脚本(批处理)的示例,请参阅HTML code to open PuTTY client from browser

标签: windows powershell ftp registry filezilla


【解决方案1】:

否,但您可以将 FTP 协议处理程序设置为 Filezilla,地址为 Control Panel\All Control Panel Items\Default Programs\Set Associations。然后,您应该可以让桌面快捷方式 (.lnk) 指向 ftp:// url,并在您为 FTP 协议选择的默认程序中打开它。

如果您想在浏览器中点击一个 FTP 链接并在外部程序中打开它,Web 浏览器通常不会让您在不使用插件的情况下覆盖其内部协议处理程序或延期。换句话说,您不能将其设置为常规浏览器设置。在这种情况下,最好只提供 FTP URL 并指示您的用户使用 Filezilla 或他们首选的 FTP 客户端连接到该站点。

无论哪种方式,最好不要使用自定义 URL 协议,就像使用 fz-ftp:// 一样。

【讨论】:

    最近更新 更多