See Microsoft article Registering an Application for Use with Default Programs.
Or, seeing that you have WinSCP installed, check what WinSCP does to register itself as ftp://
handler:
[HKEY_CLASSES_ROOT\WinSCP.Url]
@="WinSCP URL"
"URL Protocol"=""
"EditFlags"=dword:00000002
"BrowserFlags"=dword:00000008
[HKEY_CLASSES_ROOT\WinSCP.Url\DefaultIcon]
@="\"C:\\Program Files (x86)\\WinSCP\\WinSCP.exe\",0"
[HKEY_CLASSES_ROOT\WinSCP.Url\shell]
[HKEY_CLASSES_ROOT\WinSCP.Url\shell\open]
[HKEY_CLASSES_ROOT\WinSCP.Url\shell\open\command]
@="\"C:\\Program Files (x86)\\WinSCP\\WinSCP.exe\" /Unsafe \"%1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Martin Prikryl\WinSCPCapabilities]
"ApplicationDescription"="WinSCP is a popular free SFTP and FTP client for Windows, a powerful file manager that will improve your productivity. It supports also Amazon S3, FTPS, SCP and WebDAV protocols. Power users can automate WinSCP using .NET assembly."
[HKEY_LOCAL_MACHINE\SOFTWARE\Martin Prikryl\WinSCPCapabilities\UrlAssociations]
"ftp"="WinSCP.Url"
[HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
"WinSCP"="Software\\Martin Prikryl\\WinSCPCapabilities"
And do a similar thing for FileZilla.
For the above to work, you still need to have ftp
protocol registered in HKEY_CLASSES_ROOT\ftp
. But you have that already.
Note that FileZilla does not support URLs pointing to a file. Only URLs pointing to a directory. WinSCP supports both.
command line arguments page indicates path is acceptable,
filezilla [<FTP URL>]
where url can be[protocol://][user[:pass]@]host[:port][/path]
. It works from the command line in my tests. Using your template I created and registered Filezilla.URL gist), but there's no change in the dialog options – matt wilkie – 2018-10-25T19:06:02.830FWIW, I'm going for Filezilla instead of WinSCP in this situation because it defaults to anonymous login, which means no prompts on launching. – matt wilkie – 2018-10-25T21:27:31.247
And did you add the other keys too? – Martin Prikryl – 2018-10-26T05:26:45.737